我们可以使用ui:include在JSF中显示一个组件吗?

时间:2010-02-12 10:39:28

标签: jsf facelets

我是JSF的新手,我正在尝试使用ui:include

显示JSF2组件
<ui:include src="myComponent.xhtml">
    <ui:param name="attr" value="aValue"/>
</ui:include>

组件已成功显示,但参数传递给JSF2组件。属性attr在组件的接口中定义。

如果我以这种方式使用我的组件,它会起作用:

<ez:myComponent attr="aValue"/>

使用ui:include的重点是使用类似的东西:

<ui:include src="#{componentName}"/>

我是在做一些不受支持的事情,还是有其他方法来显示我的组件并填充参数?

我正在使用GlassFish v3。

提前致谢。

2 个答案:

答案 0 :(得分:1)

从我对ui:param的理解中你应该能够访问ui:param的值 在Component.html中使用#{attr},使用param名称 看看https://facelets.dev.java.net/nonav/docs/dev/docbook.html#template-param

答案 1 :(得分:0)

基于Inv3r53答案中的注释:句点在表达式语言中具有特殊含义,用于评估表达式链。如果您希望自己的网页既可以独立使用又可以用作组件,那么请在撰写标记之外使用c:set(JSF 2 doc)将cc.attrs.attr设置为attr。该集合将在独立时使用,但在包含时将被忽略(仅包括组合标签之间的内容)。