是否将f:event放在f:metadata中重要吗



w.r.t.如何使用f:viewParam对GET请求执行操作?

<f:metadata>
    <f:viewParam name="id" value="#{tInputBean.id}" />
    <f:event type="preRenderView" listener="#{tInputBean.init}" />
</f:metadata>

我很想知道preRenderViewf:event是否放在f:metadata中是否重要。我查看了Java EE6教程、Java Server Faces 2.0 Complete Reference和Core JSF2,它们都没有在f:metadata中包含f:event的示例,但我在网上看到了很多这样的示例。

JSF2 Compl。Ref说第540页

f:metadata标记封装了用于指定Facelet视图的元数据,因此必须是f: 视图标记,并且可能不会出现在模板中。截至JSF2.0这个标记的目的是封装f:viewParam标记。

将f:事件(通常用于支持f:viewParam(放在f:元数据中有特殊意义吗?还是只是为了在视觉/逻辑上帮助将其与f:viewParam一起分组?

否,<f:event>并不严格要求放置在<f:metadata>内部。它可以连接到任何组件。当您有一堆<f:viewParam>并且希望在设置完所有这些视图参数后挂接一个<f:event>来调用一个操作时,它实际上是为了纯粹的自记录目的而放置在<f:metadata>中。它甚至可以放在<f:viewParam>的外部/之前,但它使代码不会更加自我文档化。

请注意,在即将发布的JSF 2.2中,将引入一个新的<f:viewAction>标签,该标签将替换<f:metadata>中的<f:event type="preRenderView">

相关内容

  • 没有找到相关文章

最新更新