2011-12-02 55 views
0

你好,我是一個年輕的軟件開發人員, ,我用我的代碼掙扎了過去5天。Struts2:雙迭代參數不起作用?

這是我在JSP代碼:

<s:iterator value="getListeDanach()" status="stat"> 
    <li> 
    <s:url id="URL_ListeDanach" action="uebersicht_umblaettern"> 
     <s:param name="angeklickteSeitenzahl" value="getListeDanach()[#stat.index]" /> 

     <s:bean name="org.apache.struts2.util.Counter" var="counter"> 
     <s:param name="last" value="3" /> 
     </s:bean> 

     <s:iterator value="#counter" status="stat1"> 
     <s:property value="#stat1.index" /> 
     <s:param name="%{optionaleParamName4}" value="#optionaleParamValue4" /> 
     </s:iterator> 
    </s:url> 

    <s:a href="%{URL_ListeDanach}" cssClass="naviTab"> 
     <s:property value="getListeDanach()[#stat.index]" /> 
    </s:a> 
    </li> 
</s:iterator> 

我的問題是,在第一次迭代的偉大工程,但第二次迭代工作的一半。在第二種情況下,該物業有效,但該參數不起作用! Al Variables可用。如果我把第二次迭代的參數標籤放在第一個中,它就很好用!但那不是我想要的。

+0

你能描述一下你正在嘗試做什麼以及第一次和第二次迭代中的所有內容嗎? –

+0

你想用''標籤和內部迭代器來做什麼?另外,你可以將'getListeDanach()'作爲'listeDanach'和'getListeDanach()[#stat.index]'寫成完全沒有用的東西,或者使用迭代器的'var'屬性。有關詳細信息,請參閱無回答。 –

回答

1

這不是答案。

這裏是JSP,清理和使用更多的S2功能。閱讀原文是不可能的。

<s:iterator value="listeDanach" status="stat" var="outerItem"> 
    <li> 
    <s:url id="URL_ListeDanach" action="child"> 
     <s:param name="angeklickteSeitenzahl" value="outerItem" /> 

<%-- What are you trying to do here? --%> 
     <s:bean name="org.apache.struts2.util.Counter" var="counter"> 
     <s:param name="last" value="3" /> 
     </s:bean> 

<%-- What are you trying to do here? There's nothing to iterate over. --%> 
    <s:iterator value="#counter" status="stat1"> 
     <s:property value="#stat1.index" /> 
     <s:param name="%{optionaleParamName4}" value="#optionaleParamValue4" /> 
     </s:iterator> 
    </s:url> 

    <s:a href="%{URL_ListeDanach}"> 
     <s:property value="outerItem" /> 
    </s:a> 
    </li> 
</s:iterator> 
+0

在這個bean中,我有一個循環,有3個「rouds」,在第二個迭代器中,我使用三個遍歷屬性和動態參數三次。 Zhe屬性在HTMl中顯示了這個結果:0 1 2; – user1076951

0

在豆我有3「輪」的循環,在第二迭代器I使用var =計數器超過該屬性,並通過動態參數迭代三次。

屬性顯示在HTMl的第一個迭代器的每個循環中:0 1 2;
這是它應該如何工作(屬性就在那裏,以測試第二個itarator的功能。)
但在第二種情況下,parameter-Tag被完全忽略或類似的東西。對於那些想知道代碼背後的邏輯的人。它是一個側面導航欄。 listeDav或=列表後面的實際數字,和listeDanach =列表後的實際數量。 1 2 3 4 [5] 6 7 8 9 ....當第二個itarator中的param Tag起作用時,我會使用迭代索引動態地創建param標籤。

簡而言之,我想要的是:每當第一個Iterator有他的循環時,我想創建動態參數。這些參數在JSP中定義並且完全受支持!我想使用索引"#stat1.index"使其工作。

事情是這樣的: s:param name="%{optionaleParamName[#stat1.index]}" value="#optionaleParamValue[#stat1.index]" />.....
我已經定義了字符串後面"#optionaleParamValue[0],背後#optionaleParamValue[1]背後#optionaleParamValue[2]和洙......這所有的重用實際的JSP。

正如你可以提到的,一個側面導航欄,可以在程序中的許多其他情況下使用。

問候