假设我有一个文件index.xhtml
,我该如何为index.xhtml?id=1
动态创建子页面。有没有办法在此页面中通过某些操作获取此id=1
?
答案 0 :(得分:0)
这就是JSF中存在<f:viewParam>
标记的原因。它允许您获取查询参数:?
后用&
分隔的参数,并在您的视图中直接使用它,或将其设置为模型属性,转换/验证它等
但是你的意思是错误的。它不用于创建“多个(子)页面”,而是用于将信息传递给视图,因此视图可以是动态的,这意味着将根据这些视图参数派生渲染信息(即显示具有特定ID的用户)。因此,它还允许创建可收藏的URL。
其用法基本如下:
<f:metadata>
<f:viewParam name="id" value="#{yourBean.userId}" />
</f:metadata>
这将使用作为查询参数传递给视图的参数预设bean的给定属性。
您可以在回答What can <f:metadata>
and <f:viewParam>
be used for?时找到更多信息。