1

我使用 struts2 和 spring 框架创建了一个项目。现在我正在尝试使用磁贴框架分离我的动态内容。布局由标题和正文组成。标题依次包含 Welcome xyz(登录用户的名称),正文部分包含人员列表,在启动时从我的数据库中填充。

以下是我的 Tiles 布局代码

布局.jsp

<body>
<tiles:insertAttribute name="header"/>
<tiles:insertAttribute  name="body"/>
</body>

瓷砖.xml

<tiles-definitions>
    <definition name="baseLayout" template="layout.jsp">
        <put-attribute name="header" value="welcome.jsp"/>
        <put-attribute name="body" value=""/>
    </definition>
    <definition name="addToListLayout" extends="baseLayout">
        <put-attribute name="body" value="addEmployee.jsp"/>
    </definition>
</tiles-definitions>

但是在登录后,我在 jsp 上得到以下输出:-


Welcome.jsp addEmployee.jsp


谁能让我知道为什么我得到的是 jsp 的名称而不是内容?

4

1 回答 1

1

问题是图块没有将您的属性解释为模板,而是将它们解释为字符串。从瓷砖文档

该标签可以灵活地用于将属性的值插入到页面中。与 Tiles 中的其他用法一样,每个属性都可以确定为具有“类型”,可以在定义时显式设置,也可以“计算”。如果类型不是显式的,那么如果属性值是一个有效的定义,它将被插入。否则,如果它以“/”字符开头,它将被视为“模板”。最后,如果它没有被分配一个类型,它将被视为一个字符串并被包含在没有任何特殊处理的情况下。

因此,您可以将 tiles.xml 中的标签更改为:

<put-attribute name="header" value="/welcome.jsp"/>

或这个:

<put-attribute name="header" type="template" value="welcome.jsp"/>
于 2012-05-29T04:27:42.207 回答