如何创建Facelets子页面

时间:2013-07-24 19:39:14

标签: jsf facelets

假设我有一个文件index.xhtml,我该如何为index.xhtml?id=1动态创建子页面。有没有办法在此页面中通过某些操作获取此id=1

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?时找到更多信息。