我一直在为 JSF 2.0 中的 Flash-scope(我知道它不像其他“范围”,但通常被称为一个)而苦苦挣扎。(莫哈拉)
我的问题是 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-cookie。
我的问题是这是否会导致我不监督的其他问题。
我无法理解为什么Flash
应该首先绑定到视图的路径。