Facelets:如何传递ui:插入值作为html属性?

时间:2009-02-11 01:31:34

标签: jsf facelets

我正在尝试在Facelets / JSF环境中完成一个小小的调整。我几乎都知道它们是如何组合在一起的。

我在各个页面上定义的值为“title”

<ui:define name="title">PageUID_123</ui:define>

在另一个页面上,我引用了这个:

<ui:insert name="title"/>

我可以在插件周围包装html标签,但我需要能够输出“title”的值作为另一个元素的属性。我的最终目标是以html格式呈现:

<meta name="pageid" content="PageUID_123"/>

如果我尝试将insert标记放在content =“”位中,则会抛出解析错误。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

我面前没有工作环境,但我相信你不想使用<ui:define>,而是想要使用<ui:param>,然后使用{{1或者${x}(或忘记哪个或者是否重要)将它们拉出来。

所以,举个例子,你会有:

#{x}

然后:

<ui:param name="title" value="PageUID_123" />

我唯一关心的是你使用include来制作漂亮的模板,即

模板:

<meta name="pageid" content="${title}"/>

内页:

<html>
    <head>
        <meta name="pageid" content="${title}"/>
    </head>
    <body>
        <ui:insert name="content" />
    </body>
</html>

我真的不知道那会不会......

修改:您可能希望尝试使用<html xmlns="...so many"> <ui:param name="title" value="PageUID_123" /> <ui:define name="content"> <!-- content goes here --> </ui:define> </html> ${title},只是因为您现在正在采取行动,它可能只是工作。