2016-04-27 34 views
2

jspにarraylistを表示するのに問題があります。それぞれの人が繰り返しを行うごとにすべてが1行に表示されます。 私はここ列(電話番号、ファックス、phone2の、電子メール)JSPでarraylistを正しく表示しているSpring MVC

を持つテーブルがあるが、私のDAO機能は次のとおりです。

@Override 
    public ArrayList<String> moyenCom(Authentication auth) { 
     String login=auth.getName(); 
     List list; 
     List listres = null; 
     ArrayList<String> array1=new ArrayList<String>(); 

     //ArrayList<ArrayList<String>> array=new ArrayList<ArrayList<String>>(); 

     SessionFactory factory=new Configuration().configure().buildSessionFactory(); 
     Session session=factory.openSession(); 
     session.beginTransaction(); 
     //Your operation 

     String sql1="select r.id_responsable from WEBCARE.PERSONNE p,WEBCARE.RESPONSABLE r,WBB_CLU.ABONNE_COMPTE ac,WBB_CLU.COMPTE_CLU c where p.id=r.id_responsable and r.id_abonne=ac.id_abonne and c.id_compte=ac.id_compte and c.login=:x"; 
     SQLQuery query1 = session.createSQLQuery(sql1); 
     query1.setParameter("x",login); 
     query1.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); 
     session.getTransaction().commit(); 
     list=query1.list(); 

    for(int i=0;i<list.size();i++){ 

     String res =list.get(i).toString(); 



     String[] parts = res.split("="); 
     String part2 = parts[1]; 



     System.out.println("id du responsable est"+res); 
     System.out.println("id du responsable spliteeee est "+part2); 



     session.beginTransaction(); 
     String sql="select mc.information from WEBCARE.MOYEN_COMMUNICATION mc,WEBCARE.PERSONNE p where p.id=mc.id_categorie and mc.id_categorie=:part2 and mc.categorie=1"; 
     SQLQuery query = session.createSQLQuery(sql); 

     query.setParameter("part2",part2); 

     query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); 
     session.getTransaction().commit(); 

     listres=query.list(); 

     for(int i1=0;i1<listres.size();i1++){ 

      String resu =listres.get(i1).toString(); 
      System.out.println("info "+resu); 
      array1.add(resu); 

    } 



     } 

    System.out.println(array1); 

    return array1; 

    } 

私のコントローラ:

@RequestMapping("/fichets") 
public String fichets(Model model,Authentication auth){ 

    Authentication authen = SecurityContextHolder.getContext().getAuthentication(); 
     String name = authen.getName(); //get logged in username 


model.addAttribute("moycoms",metier.moyenCom(auth)); 



return "InfoAbonneTS"; 
} 

と私のjspページ:

<c:forEach items="${resps}" var="resp"> 

     <tr> 


     <td id="date">${resp.nom} ${resp.prenom}</td> 
     <td>${resp.poste}</td> 
     <td>${resp.password}</td> 

    <c:forEach items="${moycoms}" var="moycom"> 
     <td>${moycom}</td> 
     </c:forEach> 

     </tr> 
    </tbody> 

    </c:forEach> 

この関数は、すべての4つの情報を含むフィールド情報を返しますすべての列にそれぞれ表示する必要があります。 のArrayListが返されます。

{information=}, {information=01999999999}, {information=0199999333}, {[email protected]}, {information=00 }, {information=0622355114}, {information=0588888888}, {[email protected]}, {information=00 }, {information=0111111111}, {information=0666666666}, {[email protected]} 

ので、最初の4つの情報は、すべての列、2番目の4つの同じことで、それぞれを表示する必要がある...この例では、私は3名を持っています。 これを正しく表示できません。それは地図のリストのように見えるのデータを見てみると

resps is for displaying the first 3 columns

答えて

0

。このコードを試してください

<c:forEach items="${moycoms}" var="moycom" varStatus="stat"> 
       <c:if test="${stat.index%4==0 && stat.index!=0}"> 
        <tr> 
       </c:if> 
        <td>${moycom['information']}</td> 
       <c:if test="${stat.index%4==0 && stat.index!=0}"> 
        </tr> 
       </c:if> 
     </c:forEach> 

現在のインデックスを見つけるのにstat変数が使用されています。インデックスに基づいて<tr>を追加して、4番目ごとのインデックスに対して完了させるようにします。 respに正しいユーザーを見つけるために使用できるいくつかの識別子が含まれている場合は、一致のために<c:if>を使用します。追加情報に

+0

あなたの返信のための@Anand Muley、y es respには4つの列を表示するためのIDが含まれていますが、jspで配列リストの表示を確認するにはどうしたらいいですか?statでコードを試してみました。 arraylistの4つのグループのそれぞれが1行に表示されます。 –

+0

クエリ結果を文字列に変換するコードを確認しました。 'String resu = listres.get(i1).toString(); System.out.println( "info" + resu); array1.add(RESU); ' に変更し、それを: 'マップRESUは=(マップ)listres.get(I1)。 array1.add(resu); ' –

+0

はい私はクエリの行を削除しました。結果をマップに変換しました。今変換する必要はありません。問題はjsp @Anand Muleyで表示されます –

0

を提供してください、あなたはモデルオブジェクト

にのみ "moycoms" 属性を追加しているが、あなたはどんな "resps" を追加していない

<c:forEach items="${resps}" var="resp"> 

から開始しJSTLあなたのモデルオブジェクトのparam

+0

はい私はちょうどそれをここで過去did't –

関連する問題