2013-03-28 51 views
0

我在我的tiles.xml文件中有以下代碼。如何用struts 2動態更改tile 3屬性值?

我有一個Struts2的行動,從數據庫中獲取數據,並在顯示清晰度sidebar.jsp填充我又打了另一部作品同樣動作的另一種方法,這一次我填充列表視圖的定義,但我以前的siderbar.jsp數據不保留其值。

我被困在這一個星期請幫助我。

<definition name="baseLayout" template="/jsp/baseLayout.jsp"> 
     <put-attribute name="header" value="/jsp/header.jsp"/> 
     <put-attribute name="menu" value="/jsp/menu.jsp"/> 
     <put-attribute name="body" value="/jsp/body.jsp"/> 
     <put-attribute name="sidebar" value="/jsp/sidebar.jsp"/>  
     <put-attribute name="footer" value="/jsp/footer.jsp"/> 
    </definition> 

    <definition name="show" extends="baseLayout"> 
     <put-attribute name="body" value="/jsp/body.jsp"/> 
    </definition> 

    <definition name="listview" extends="baseLayout"> 
     <put-attribute name="body" value="/jsp/listview.jsp"/> 
    </definition> 
+0

究竟是你想保留相關的數據?顯示一些代碼。 – 2013-03-28 11:52:51

回答

0

根據我的理解,sidebar.jsp是保存邊欄數據的JSP。檢查用於填充JSP的對象的值。

I again hit another method of same action for another work and this time 
I populate list view definition but my previous data of siderbar.jsp does not 
retain its value. 

當你打另一個動作的動作的所有變量都被再次初始化,這可能是爲什麼你的sidebar.jsp不能保留以前的數據的原因。

一個簡單的解決方案是將存儲在會話sidebar.jsp

希望這有助於:)

+0

我認爲它不是一個更好的解決方案,將它保存在會話中。是否有其他方式可以用實用的方式更改瓷磚中定義的屬性值。 – ammad 2013-03-28 10:22:11

+0

@ammad尚未https://issues.apache.org/jira/browse/WW-3937 – 2013-03-28 13:45:20

+0

使用圖塊3,您可以使用通配符從圖塊定義請求中提取值,並將它們作爲參數傳遞到視圖中(用於一種表達)。從那裏你可以有條件地處理你的菜單。請參閱:http://stackoverflow.com/questions/16116142/how-to-integrate-struts-conventions-with-tiles-such-that-the-benefit-of-conventi/16116396#16116396這個例子顯示了瓷磚的定義使用正則表達式,但不顯示如何處理與它的菜單。 – Quaternion 2013-04-27 04:48:15