我有一个jsf main.xhtml,它导致一个Session Scoped MenuBean。 我总是在同一个网站上,但我通过动态包含动态获得不同的内容。
<h:body styleClass="template">
<ui:insert name="metadata" />
<p:layout fullPage="true">
<ui:include src="#{menuBean.menuToInclude}" />
<p:layoutUnit position="south" rendered="#{menuBean.menuPosition.equals('top')}" styleClass="footer">
<ui:include src="/include/footer.jspx" />
</p:layoutUnit>
<p:layoutUnit position="center" id="centerUnit">
<p:panel id="contentUnit" styleClass="inner_center">
<ui:include src="#{contentBean.requestSite}" />
</p:panel>
</p:layoutUnit>
</p:layout>
到目前为止这个工作正常。但现在我的问题是,包含的内容网站依赖于一个永远不会刷新的视图Scoped Bean,因为我从不改变我的观点。 请求范围不起作用,因为有时我需要保留一些参数。 而且我不能保持所有Beans会话作用域,因为当我更改动态内容时我需要新的实例。
有没有提示?
我正在使用JSF 2.2和Primefaces 5.2
例如,这是一个未实现的包含网站:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
Your Content
</ui: composition>