ui:include 在预呈现事件 jsf 之前包含页面
ui:include includes page before prerender event jsf
我有一个 test.xhtml 页面,我在其中定义了一个事件
<f:metadata>
<f:event type="preRenderView" listener="bean.setUrl()"/>
</f:metadata>
页面中还有一个插入标签。
<ui:insert name="melcontent">
<ui:include id="contentscreen" src="bean.url"/>
</ui:insert>
现在的问题是我想在 prerender 事件中动态地设置这个 include src 页面 src="/page/somepage.xhtml" prerender 调用 listener,include 甚至在 prerender 之前就已经执行了。任何人都可以提出一种方法来实现这一目标。提前致谢。
标签 ui:include 是一个标签处理程序,这意味着它在视图构建时而不是视图渲染时运行。所以 preRenderView 稍后发生。
构建时间标签 - 它们用于更改组件树的构建。他们不会在渲染时间内做任何改变。
Render Time - 渲染视图时生成 HTML。稍后发生。
如果你真的需要使用 ui:include 来完成它,你可以添加一个由 ui:fragment 包装的带有渲染属性的包含列表,因为 ui:fragment 渲染属性将是在渲染期间评估。喜欢:
<h:panelGroup id="panel">
<ui:fragment rendered="#{bean.conditionFirstFile}">
<ui:include src="first.xhtml"/>
</ui:fragment>
<ui:fragment rendered="#{bean.conditionSecond}>
<ui:include src="second.xhtml"/>
</ui:fragment>
...
</h:panelGroup>
我有一个 test.xhtml 页面,我在其中定义了一个事件
<f:metadata>
<f:event type="preRenderView" listener="bean.setUrl()"/>
</f:metadata>
页面中还有一个插入标签。
<ui:insert name="melcontent">
<ui:include id="contentscreen" src="bean.url"/>
</ui:insert>
现在的问题是我想在 prerender 事件中动态地设置这个 include src 页面 src="/page/somepage.xhtml" prerender 调用 listener,include 甚至在 prerender 之前就已经执行了。任何人都可以提出一种方法来实现这一目标。提前致谢。
标签 ui:include 是一个标签处理程序,这意味着它在视图构建时而不是视图渲染时运行。所以 preRenderView 稍后发生。
构建时间标签 - 它们用于更改组件树的构建。他们不会在渲染时间内做任何改变。
Render Time - 渲染视图时生成 HTML。稍后发生。
如果你真的需要使用 ui:include 来完成它,你可以添加一个由 ui:fragment 包装的带有渲染属性的包含列表,因为 ui:fragment 渲染属性将是在渲染期间评估。喜欢:
<h:panelGroup id="panel">
<ui:fragment rendered="#{bean.conditionFirstFile}">
<ui:include src="first.xhtml"/>
</ui:fragment>
<ui:fragment rendered="#{bean.conditionSecond}>
<ui:include src="second.xhtml"/>
</ui:fragment>
...
</h:panelGroup>