我在将JSF应用程序转换为可书写页面方面取得了很多进展,但我想知道我是否正确地做到了这一点。一个问题是,是否有f:metadata标签的最佳实践位置?使用<ui:composition>模板时,我应该在哪里声明<f:metadata>?
我典型的Facelets客户端页面看起来是这样的:
<ui:composition template="./pattern.xhtml">
<ui:define name="content">
<f:metadata>
<f:viewParam name="userId" value="#{bean.userId}" />
<f:viewParam name="startRecord" value="#{bean.startRecord}" />
<f:viewParam name="pageSize" value="#{bean.pageSize}" />
<f:viewParam name="sort" value="#{bean.sort}" />
</f:metadata>
<h1>Data Table</h1>
etc
所以F:元数据和儿童F:viewParam标签在我的页面的主体遇到的。我的pattern.xhtml模板也有一个部分(名为“标题”),可以将这些标签放在标题部分。他们应该放在那里吗?它是否有所作为,还是我设置了一些我还没有看到的副作用?
我必须说,看起来比我一直在做的事情要干净一些。不知何故,我没有想到为了元数据目的创建一个** ui:insert **,但我现在就可以。 – AlanObject 2012-03-25 03:27:31
这是否意味着'f:metadata'不能放在例如一个页面模板中以使它可重用?那么如果我们想在每个视图呈现之前执行一些操作,那么该怎么做呢? – 2014-01-20 14:25:24
@Xtreme:只需使用''。它实际上不需要放在''内。另请参阅http://stackoverflow.com/questions/7343220/jsf-does-it-matter-whether-place-fevent-inside-fmetadata-or-not/7343242#7343242 –
BalusC
2014-01-20 14:26:43