Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheTiles:如何访问定义名称_Java_Templates_Jsp_Tiles - Fatal编程技术网

Java ApacheTiles:如何访问定义名称

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定义名称直接写入模板中。但我不知道如何访问定义名称

为了说明我想做什么,请看一下此解决方案:

<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>


更多信息请点击此处:

您是否实现了自己的目标?如果你知道怎么做我会很感兴趣…@皮埃尔·亨利:不,我没有找到解决办法