Struts2:参数的双重迭代不起作用?

时间:2011-12-02 08:56:57

标签: struts2

您好,我是一名年轻的软件开发人员, 我用我的代码在最近5天里挣扎了。

这是我在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变量可用。如果我采用第二次迭代的参数标记并将其放在第一次,它的效果很好!但这不是我想要的。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

在bean中我有一个带有3个“rounds”的循环,在第二个迭代器中我使用var = counter在属性和动态参数上迭代三次。

该属性在HTMl中显示在第一个迭代器的每个循环中此结果:0 1 2;
这是它应该如何工作(属性就在那里,以测试第二个itarator的功能。)
但在第二种情况下,parameter-Tag被完全忽略或类似的东西。对于那些想要了解代码背后的逻辑的人。这是一个侧面导航栏。 listeDav或= list后面的实际数字,而listenDanach = list后面的实际数字。 1 2 3 4 [5] 6 7 8 9 ....当第二个itarator中的参数标签运行良好时,我会使用迭代索引动态制作param标签。

简而言之,我想要的是:每当第一个迭代器有他的循环时,我想创建动态参数。此参数在之前的JSP中定义并完全受支持!我想使用索引"#stat1.index"来使其工作。

这样的事情: s:param name="%{optionaleParamName[#stat1.index]}" value="#optionaleParamValue[#stat1.index]" />.....
我已经在"#optionaleParamValue[0]后面定义了#optionaleParamValue[1]后面的#optionaleParamValue[2]和{{1}}后面的字符串......以及所有这些都是为了重用实际的JSP。

正如您所提到的,侧面导航栏可以在程序中的许多其他情况下使用。

问候