2011-07-20 70 views
8

我想將一些用戶數據存儲到cookie中,以便在加載Web應用程序時始終存在,即使會話已過期。JSF將數據存儲到cookie中

用JSF做這件事的最好方法是什麼?

+0

餅乾在這裏可以是錯誤的做法。 Cookie用於從客戶端到服務器的通信。如果你想要客戶端存儲,你應該看看DOM存儲。 –

回答

17

寫入一個cookie:

FacesContext.getCurrentInstance() 
.getExternalContext() 
.addResponseCookie("CookieName", "value", null); 

讀取cookie的

Map<String, Object> requestCookieMap = FacesContext.getCurrentInstance() 
    .getExternalContext() 
    .getRequestCookieMap(); 
+4

如果您打算添加屬性,您也可以使用「FacesContext.getCurrentInstance()。getExternalContext()。getResponse()」,將其轉換爲HttpServletResponse,然後使用「resp.addCookie(Cookie c)」。 – vaxquis

+0

我正在使用JSF2.2並且此答案無效。如果你有相同的問題嘗試這個答案:http://stackoverflow.com/questions/20934016/how-to-add-cookie-in-jsf – Yamada