Apache Tiles:如何访问定义名称
我想将图块定义名称直接写入模板中。但我不知道如何访问定义名称。
为了说明我想要做什么,请查看此解决方法:
<tiles-definitions>
<definition extends="default" name="index">
<put-attribute name="body" value="/WEB-INF/views/index.jspx"/>
<put-attribute name="pageId" value="index"/>
</definition>
<definition extends="default" name="login">
<put-attribute name="body" value="/WEB-INF/views/login.jspx"/>
<put-attribute name="pageId" value="login"/>
</definition>
</tiles-definitions>
默认模板:
<html>
...
<tiles:useAttribute id="tiles_pageId" name="pageId" classname="java.lang.String" />
<body id="pageId_${tiles_pageId}">
...
</body>
</html>
这有效。我可以在定义中指定一个属性(pageId),在模板中读取它并将其写入模板输出中。
但您会看到定义名称和 pageId
之间存在 1:1 的相关性。所以我不想在定义中写两次名称(定义 name
和 pageId
)。相反,我正在寻找一种方法来跳过 pageId
属性声明并以模板中的其他方式获取定义名称(无需一次又一次地写入两次。)
I want to write the tiles definition name direct into the templates. But I have no idea how to access the definition name.
To illustrate what I want to do have a look at this workaround:
<tiles-definitions>
<definition extends="default" name="index">
<put-attribute name="body" value="/WEB-INF/views/index.jspx"/>
<put-attribute name="pageId" value="index"/>
</definition>
<definition extends="default" name="login">
<put-attribute name="body" value="/WEB-INF/views/login.jspx"/>
<put-attribute name="pageId" value="login"/>
</definition>
</tiles-definitions>
Default Template:
<html>
...
<tiles:useAttribute id="tiles_pageId" name="pageId" classname="java.lang.String" />
<body id="pageId_${tiles_pageId}">
...
</body>
</html>
This works. I can specify an attribute (pageId) in the definition, read it in the template and write it in the template output.
But you see there is a 1:1 correlation between definition name and pageId
. So I do not want to write the name twice (definition name
and pageId
) in the definition. Instead I am looking for a way to skip the pageId
attribute declaration and get the definition name somehow else in the template (without writing it twice again and again.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您可以在定义中使用通配符
更多信息:http://tiles。 apache.org/framework/tutorial/advanced/wildcard.html
I think you can use Wildcard in your definition
More info here : http://tiles.apache.org/framework/tutorial/advanced/wildcard.html