8

我正在尝试在 Facelets/JSF 环境中完成一个小调整。我几乎不知道所有这些是如何组合在一起的。

我在各个页面上定义了一个值作为“标题”

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

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

<ui:insert name="title"/>

我可以很好地将html标签包裹在插入物周围,但我需要能够将“title”的值作为另一个元素的属性输出。我的最终目标是让它像这样在 html 中呈现:

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

如果我尝试将插入标记放在 content="" 位中,则会引发解析错误。有没有办法做到这一点?

4

1 回答 1

6

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

因此,对于您的示例,您将拥有:

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

进而:

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

我唯一担心的是你正在使用 include 来拥有漂亮的模板,即

模板:

<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}#{title}只是为了踢你现在做的方式,它可能只是工作。

于 2009-02-11T06:59:54.410 回答