我有像
这样的图块定义<definition name="tasks" template="/jsp/layout/layout.jsp">
<put-attribute name="header" value="/jsp/layout/header.jsp"/>
<put-attribute name="nav" value="/jsp/layout/navigation.jsp"/>
<put-attribute name="menu" value="/jsp/task/menu.jsp#ShowUser" />
</definition>
我想在属性的值中添加锚点,并且需要根据设置控制器的属性来设置此锚点。 例如
<put-attribute name="menu" value="/jsp/task/menu.jsp#ShowUser" />
然而,这似乎不起作用。
知道如何做到这一点?
答案 0 :(得分:0)
解决这个问题的一种方法(可能有另一种方法?)是将OGNL的使用与你的Tile定义中的外卡结合使用。
假设我有这个动作:
public class DynamicTileAction {
MyModel model
public String execute() {
return "success";
}
public MyModel getModel() {
return this.model;
}
//other code...
}
这个结果定义:
<result name="success" type="tiles">dynamic.tile.${model.someField}</result>
然后在tiles.xml中我可以这样做:
<definition name="dynamic.tile.*">
<put-attribute name="dynamicField" value="{1}" />
</definition>
或者,您可以使用它来动态地包含JSP:
<definition name="dynamic.tile.*">
<put-attribute name="content" value="/WEB-INF/content/dynamic/{1}.jsp" />
</definition>
然后,您在上方看到{1}
的每个地方都会等同getModel().getSomeField()
的值。