JSF 2.0에서 플래시 범위 으로 어려움을 겪고 있습니다. (나는 다른 곳과 같은 "범위"는 아니지만 종종 하나라고 말합니다). (Mojarra)JSF 2.0 플래시 범위 - 쿠키 경로
내 문제는 플래시 쿠키가 플래시에 개체를 두는보기의 경로에 바인딩된다는 것입니다.
같은 응용 프로그램의 다른 경로로 리디렉션 된 후 개체를 사용할 수 없게됩니다. 리디렉션 탐색 반대편에서 String (및 객체)을 사용할 수 있어야합니다.
@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가 응용 프로그램 context-root에 바인딩되도록 수정합니다.
제 질문은 이것이 내가 감독하지 않는 다른 문제를 일으키는 지 여부입니다.
처음에보기의 경로에 Flash
이 바인딩되어야하는 이유를 이해할 수 없습니다.
> 가정 중 하나가 잘못되었습니다. - 틀린 것은 아닙니다. 버그 (실제로 여러 번)로 인해 이것은 실제로 Mojarra에서 일어난 일입니다. –