-1

任何人都可以帮助我。我的意图是遍历两个二维数组

  1. Org_Positions_IdTitle其中包含 a) 提升职位的 ID 和 b) 他们的头衔。
  2. Org_Apps其中包含 a) 学生 ID 和 b) 升职的 ID。

因此,我希望每当检查两个数组中的位置 ID 等于显示该位置的标题时。非常感谢你们的帮助。

  ResultSet ResSet_Org_Positions_IdTitle = OrgInfo.Get_Organisation_Positions_IdTitle(username,password);   
            ResultSet ResSet_Org_Apps = OrgInfo.Get_Organisation_Apps(username,password);

        int i=0;
        while(ResSet_Org_Positions_IdTitle.next()){ 
            Org_Positions_IdTitle[i][0] = new String(String.valueOf(ResSet_Org_Positions_IdTitle.getInt("P_Ps_Id")));
            Org_Positions_IdTitle[i][1]= new String(ResSet_Org_Positions_IdTitle.getString("Title")); i++;
            Org_Positions_IdTitle[i][0]= new String("Last");
            //System.out.println(i+":"+Org_Positions_IdTitle[i-1][j-1]+Org_Positions_IdTitle[i-1][j]);
        }

        int m=0; //Org_Apps A_St_Id A_Ps_Id
        while(ResSet_Org_Apps.next()){ 
            Org_Apps[m][0] = new String(String.valueOf(ResSet_Org_Apps.getInt("A_St_Id"))); 
            Org_Apps[m][1]= new String(ResSet_Org_Apps.getString("A_Ps_Id")); m++;
            Org_Apps[m][0]= new String("Last");
            //System.out.println(i+":"+Org_Positions_IdTitle[i-1][j-1]+Org_Positions_IdTitle[i-1][j]);
        }

        session.put("Org_Positions_IdTitle", getOrg_Positions_IdTitle());
        session.put("Org_Apps", getOrg_Apps());



        <s:iterator value="Org_Positions_IdTitle" id="P_Ps_Id" >
            <s:iterator value="Org_Apps" id="A_Ps_Id" >
                <s:if test="%{#P_Ps_Id==#A_Ps_Id} ">
                    <s:property value="Title" />        
                </s:if>
            </s:iterator>
        </s:iterator> 
4

1 回答 1

0

所以它应该看起来像这样:

<s:iterator value="firstArray" var="arr1">
  <s:iterator value="secondArray" var="arr2">
    <s:if test="#arr1[0] == #arr2[1]">
      <s:property value="#arr1[1]" />        
    </s:if>
  </s:iterator>
</s:iterator>

不要忘记您需要在动作类中为您的数组设置设置器/获取器。

Struts2 标签中的BTWid属性很久以前就被弃用了,请var改用。

还可以考虑更改代码以使用地图而不是数组。那么就不需要在JSP上迭代了。

于 2013-04-22T11:22:16.673 回答