Restoring request parameters in @ViewScoped bean after session expires

夙愿已清 提交于 2019-12-04 11:56:24

As to bypassing the expired view by just completely recreating it, add <o:enableRestorableView> to the metadata:

<f:metadata>
    ...
    <o:enableRestorableView />
</f:metadata>

As to retaining the request parameter, either add a plain HTML hidden input field to the form:

<h:form>
    ...
    <input type="hidden" name="id" value="#{dataTable.id}" />
</h:form>

or use <o:form> with includeViewParams="true",includeRequestParams="true" or useRequestURI="true", depending on whether you'd like to submit to the JSF view ID with all view params, or to the JSF view ID with the entire request query string, or to the entire request URI (including query string):

<o:form includeViewParams="true">
    ...
</o:form>

As to reinitializing the bean's state on postback before it going through all phases of the JSF lifecycle, you'd need to replace the <o:viewParam> by manually grabbing it and the <f:viewAction> by @PostConstruct:

@PostConstruct
public void initialize() {
    id = Faces.getRequestParameter("id");
    // ...
}

I tried all these above and not working in mojarra 2.2.5

Just change mojara to mojarra 2.2.8 and it will be solved without adding any code

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!