Java ApacheTiles:如何访问定义名称
我想将tiles定义名称直接写入模板中。但我不知道如何访问定义名称 为了说明我想做什么,请看一下此解决方案:Java ApacheTiles:如何访问定义名称,java,templates,jsp,tiles,Java,Templates,Jsp,Tiles,我想将tiles定义名称直接写入模板中。但我不知道如何访问定义名称 为了说明我想做什么,请看一下此解决方案: <tiles-definitions> <definition extends="default" name="index"> <put-attribute name="body" value="/WEB-INF/views/index.jspx"/> <put-attribute name="pageId" value="
<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
属性声明,并以其他方式在模板中获取定义名称(无需反复编写两次)。我认为可以在定义中使用通配符
<definition extends="default" name="*">
<put-attribute name="body" value="/WEB-INF/views/{1}.jspx"/>
<put-attribute name="pageId" value="{1}"/>
</definition>
更多信息请点击此处:您是否实现了自己的目标?如果你知道怎么做我会很感兴趣…@皮埃尔·亨利:不,我没有找到解决办法