2012-05-24 99 views
1

我有一個像Struts2的瓷磚問題

<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

例如,什麼? Plz完成你的問題 – mprabhat

回答

0

對此的一種方法(可能有另一種方式?)將結合使用您的行動結果位置中的OGNL和瓦片定義中的通配符。

假設我有這樣的動作:

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()的值。

+0

我想在tiles定義中添加一個錨點來將控件重定向到我的jsp文件中的選項卡。任何想法如何做到這一點,瓷磚似乎都不會接受屬性值中的#。 coder