Prime Face で JSF2 を使用しています。すべてのページでユーザーがクリックした以前のリンクまたは URL をすべて表示したいのですが、どうすればよいですか?
2 に答える
            0        
        
		
ここにあなたのための良いリンクがあります: Java フィルターからリクエスト URL を取得するにはどうすればよいですか?
私なら、その例のようなものを使用して、3 つの URL のセットを作成します。
//Using linked example
    public class MyFilter implements Filter {
        public void init(FilterConfig config) throws ServletException { }
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
            chain.doFilter(request, response);
            String url = ((HttpServletRequest) request).getPathTranslated();
            UrlBean urlBean = (UrlBean) FacesContext.getCurrentInstance()getApplication().getValueBinding("#{urlBean}");
            urlBean.storeUrl(url);
        }
    public void destroy() { }
}
これは完全にテストされていませんが、アイデアはうまくいくはずです。コンポーネントに必要なものを格納するために、いくつかのロジック (おそらくスタック) を実装する必要があります。(明らかに、同じ URL に複数回アクセスする可能性があります)。UrlBean は単なる抽象的なアイデアであり、実装する必要があることに注意してください。
于 2012-10-06T19:53:51.953   に答える
    
    
            -1        
        
		
こんにちは、ユーザーが参照する URL を配置するために、このシングルトン クラスを作成しました。
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class UrlHistory {
    @SuppressWarnings("rawtypes")
    private static Map<String, List> store = new HashMap<String, List>();
    private static UrlHistoryBean instance = null;
    public static UrlHistoryBean getInstance() {
        if (instance == null) {
            instance = new UrlHistoryBean();
        }
        return instance;
    }
    LinkedList<UrlData> urlList = new LinkedList<UrlHistoryBean.UrlData>();
    public void addUrl(String sessionId, String urlString, int urlId) {
        UrlData data = new UrlData();
        data.setUrlName(urlString);
        data.setUrlId(companyId);
        if (urlList.isEmpty()) {
            urlList.add(data);
        } else {
            boolean isEqual = false;
            for (UrlData urlDataObj : urlList) {
                if (urlDataObj.equals(data))
                    isEqual = true;
            }
            if(!isEqual)
                urlList.addFirst(data);
        }
        store.put(sessionId, urlList);
    }
    @SuppressWarnings("rawtypes")
    public static Map<String, List> getStore() {
        return store;
    }
    @SuppressWarnings("rawtypes")
    public static void setStore(Map<String, List> store) {
        UrlHistoryBean.store = store;
    }
    public class UrlData {
        String urlName;
        int urlId;
        public String getUrlName() {
            return UrlName;
        }
        public void setUrlName(String UrlName) {
            this.UrlName = UrlName;
        }
        public int getUrlId() {
            return urlId;
        }
        public void setUrlId(int urlId) {
            this.urlId = urlId;
        }
        public boolean equals(UrlData rData) {
            boolean bEqual = false;
            if (this.getUrlId() > 0 && rData.getUrlId() > 0 && this.getUrlId() == rData.getUrlId()) {
                bEqual = true;
            }
            return bEqual;
        }
    }
}
于 2012-10-13T05:21:53.313   に答える