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

Struts2:参数上的双重迭代不起作用?,struts2,Struts2,你好,我是一名年轻的软件开发人员, 在过去的5天里,我一直在努力学习我的代码 以下是我在JSP中的代码: <s:iterator value="getListeDanach()" status="stat"> <li> <s:url id="URL_ListeDanach" action="uebersicht_umblaettern"> <s:param name="angeklickteSeitenzahl" value="g

你好,我是一名年轻的软件开发人员, 在过去的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>

  • 我的问题是,第一次迭代效果很好,但第二次迭代效果是一半。在第二种情况下,属性工作,但参数不工作!所有变量都可用。如果我使用第二次迭代的param标记并将其放在第一次迭代中,那么效果非常好!但那不是我想要的

    这不是答案

    这是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>
    
    
    

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

    属性在第一个迭代器的每个循环中的
    HTMl
    中显示此结果:0 1 2
    这就是它的工作原理(属性就在那里,用于测试第二个iTerator的功能。)
    但在第二种情况下,
    参数标记
    被完全忽略或类似的内容。对于那些想知道代码背后的逻辑的人。它是一个侧导航栏。ListDAV或=实际数字后面的列表,ListDANach=实际数字后面的列表。1 2 3 4 [5] 6 7 8 9.... 当第二个Iterator中的param标记运行良好时,我将使用迭代索引动态生成param标记

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

    大概是这样的:
    s:param name=“%{optionaleParamName[#stat1.index]}”value=“#optionaleParamValue[#stat1.index]”/>……

    我已经定义了
    “#optionaleParamValue[0]
    后面、
    #optionaleParamValue[1]
    后面和
    #optionaleParamValue[2]
    后面的字符串,所有这些都是为了重用实际的JSP。

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


    问候语

    你能描述一下你在第一和第二个迭代器中要做什么吗?你想用
    标记和内部迭代器做什么吗?此外,你还可以将
    getListDanach()
    写成
    ListDanach
    getListDanach()[#stat.index]
    要么什么都不做,要么使用迭代器的
    var
    attribtue。有关详细信息,请参阅non-answer。在bean中,我有一个带有3个“roud”的循环,在第二个迭代器中,我使用3个“roud”在属性和动态参数上迭代三次。属性在HTMl中显示此结果:0 1 2;