我一直在使用Flash範圍 (我知道它不像其他的「範圍」,但通常被稱爲「JSF 2.0」中的範圍)。 (Mojarra)JSF 2.0 Flash-scope - Cookie路徑
我的問題是,flash-cookie綁定到視圖的路徑將對象放入flash中。
這會導致對象在重定向到同一應用程序中的不同路徑後不可用。 我們需要在重定向導航的另一側提供字符串(可能是對象)。
我已經實現了一個@WebFilter
,其目的是覆蓋這個並用下面的包裝代替ServletResponse
。
private class ResponseWrapper extends HttpServletResponseWrapper{
private final String path;
public ResponseWrapper(HttpServletResponse response, String contextpath) {
super(response);
this.path = contextpath;
}
@Override
public void addCookie(Cookie cookie) {
// Hardcoded name from jsf-impl # com.sun.faces.context.flash.ELFlash
final String FLASH_COOKIE_NAME = "csfcfc";
if (cookie.getName().equals(FLASH_COOKIE_NAME)){
cookie.setPath(path);
}
super.addCookie(cookie);
}
}
實際上,這個包裝器將修改flash-cookies以綁定到應用程序上下文根。
我的問題是這是否會導致其他問題,我不監督。
我無法理解爲什麼Flash
應該首先綁定到視圖的路徑。
>你的一個假設是不正確的: - 這是不正確的。由於一個錯誤(實際上有幾個),這確實是在Mojarra發生的事情。 – 2013-06-30 07:13:04