【问题标题】:Struts2 tiles issueStruts2 瓦片问题
【发布时间】:2012-05-31 00:32:27
【问题描述】:

我有一个类似的瓷砖定义

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

但是这似乎不起作用。

知道如何做到这一点吗?

【问题讨论】:

  • 你能看到你的问题吗,不格式化是如何导致一些相当重要的东西不出现的?
  • 例如什么?请完成您的问题

标签: struts2 tiles


【解决方案1】:

解决此问题的一种方法(可能还有另一种方法?)是结合在您的操作结果位置使用 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() 的值。

【讨论】:

  • 我想在图块定义中添加一个锚点,以将控件重定向到我的 jsp 文件中的选项卡。知道如何做到这一点,图块似乎不接受属性值中的#。
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多