2013-04-22 3 views
-1

Может кто-нибудь мне помочь. Мое намерение состоит в том, чтобы перебрать два 2Dimentional массивыитерация по двум массивам в jsp с использованием распорок 2 тега

  1. Org_Positions_IdTitle который содержит) идентификаторы приподнятых позиций и б) их названия.
  2. Org_Apps, который содержит a) идентификаторы студента и b) идентификаторы поднятых позиций.

Таким образом, я хочу, чтобы всякий раз, когда позиция Ids в двух массивах проверяется равной отображению заголовка позиции. Большое спасибо за помощь ребятам.

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> 
+1

И вопрос ...? –

+1

@Abdou спрашивайте у вас вопрос. В чем дело. –

+0

О, очень жаль Парни, у меня проблема с отображением Title. мое намерение состоит в том, чтобы перебирать два двумерных массива 1) Org_Positions_IdTitle, который содержит a) идентификаторы поднятых позиций и b) их титры. 2) Org_Apps, который содержит a) идентификаторы студента и b) идентификаторы поднятых позиций. Поэтому я хочу, чтобы всякий раз, когда позиция Ids в двух массивах проверяется равной diplay Title of position. Большое спасибо за помощь ребятам. – Abdou

ответ

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> 

Не забывайте, что вам нужно сеттеры/добытчиками для массивов в классе действий.

Атрибут BTW id в тегах Struts2 устарел давным-давно, вместо этого используйте var.

Также рассмотрите возможность изменения кода для использования карт вместо массивов. Тогда нет необходимости перебирать его на JSP.

+0

Большое спасибо за вашу помощь Александру, хотя я получаю: ** Атрибут var недействителен для тегатера в соответствии с TLD **. Кроме того, в jsp я получаю var1 и var2. Я пытаюсь на данный момент решить эту проблему. Я был бы благодарен, если вы тоже с этим справитесь :) – Abdou

+0

@Abdou: Если вы используете очень старую версию Struts2, тогда используйте 'id'. –

+0

Большое спасибо за вашу большую помощь. Я использовал идентификатор, и он работает. Еще раз спасибо вам большое. – Abdou

Смежные вопросы