만료 후 나는 my.page.com/table.xhtml?id=123
같은 아래의 URL로 설정이있는 페이지가 있습니다. 모든 작업은 AJAX
을 사용하여 데이터 테이블을 다시로드합니다.복원 요청 매개 변수 세션이
id
이 throught를로드 :
<f:metadata>
<o:viewParam name="id" value="#{dataTable.id}" />
<f:viewAction action="#{dataTable.initialize}" />
</f:metadata>
이 모두 잘 작동을, 세션이 만료 될 때까지. 이 시점에서 아무 것도 작동하지 않습니다. 문제의 id
에 더 이상 액세스 할 수 없기 때문에 데이터를 가져올 수 없으며 데이터를 가져 오는 DAO
클래스에 대한 호출에이 데이터가 없습니다.
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")
반환 null
: "더 이상 id
에 액세스 할 수 없습니다"으로
나는 것을 의미한다. 또한, f:metadata
에 o:viewParam
를 통해로드 내 백업 콩에서 int id
가 (. 나는 ViewExpiredException
를 잡을 수있는 방법이 알고
을 같은 운명을 겪고 있지만, 내가 원하는 것이 아니다. 나는 페이지가 필요합니다 단순히 알고있는 사용자없이 (이 경우 id
에) 요청 매개 변수를 사용하여 모든 값을 다시로드합니다.
을 나는 @ViewScoped
이 복잡한 테이블과 모든 매개 변수를 제어 할 수 빈을 관리해야합니다 (I 생각) 등
를 내가 이 점에 관해서는 잃어 버렸습니다. 나는 내 자신의 빌드를 시도했다 ViewHandler
단순히 페이지를 다시 작성 (새로 고침)하고 다른 솔루션 중 PrimeFaces
ajaxExceptionHandler
을 사용하려고했습니다. 그러나 이것들은 모두 오류가 발생하고 그것을 표시합니다. 백킹 빈에서 내 요청 매개 변수 my.page.com/table.xhtml
?id=123
에 액세스하고 싶습니다.
도움을 주시면 감사하겠습니다.
I가 실행하고 있습니다 :
- 톰캣 7
- 인 Mojarra 2.2.6
- Omnifaces 1.8.1
- Primefaces 5.0
는 "더 이상 문제의 ID에 액세스 할 수 없습니다"란 무엇을 의미합니까 코드를 추가하지 않고 해결 될 것인가? – EJP
@EJP는 귀하가 가진 질문과 관련하여 더 자세한 내용으로 질문을 업데이트했습니다. – blo0p3r
Ajax 호출로 인해 발생합니다. 세션 만료는 요청 매개 변수와 아무 관련이 없습니다. 뷰에 저장하거나 c :가 설정된 빈에 저장하십시오. – EJP