実現したい事
jspにてActionクラスのMapを扱う際、任意のキー値を動的に取得するにはどの様に記述すれば良いのでしょうか?
記載コードで実行の結果、値が取得できずテーブルが空となってしまいます。
※そもそも、Listで渡せばs:iteratorで回すだけで同様の事が実現出来るかと思いますが、Mapでも同様の事が出来ないものかと思い質問させて頂きました。
条件
・DBから取得できるレコード数は不明
・Mapを使用した受け渡しとする
試した事
・Java(Action)側の動作に問題が無いことは確認済みです。DBから値の取得、 DTOクラスへのset、sessionへのputも問題ありません。
・ javascript側のinsertAdjacentメソッド部分をdocument.writeメソッドで試しましたが特に変化はありませんでした。
Java(Action)
1/* 2ResultSetクラスのresultにDBから取得したデータを格納。 3取得データはいずれもString型。 4 DTOもDBデータに合わせ定義済み。 5sessionはMap。 6*/ 7 8int i=1; 9while(result.next()){ 10ItemDTO dto=new ItemDTO(); 11dto.setName(resultSet.getString("name")); 12dto.setPrice(resultSet.getString("price")); 13dto.setStock(resultSet.getString("stock")); 14session.put("item"+i++,dto); 15} 16session.put("itemSize",i-1); 17
jsp
1<table> 2< input type="hidden" id="size" value="<s:property value='session.itemSize'/>"> 3<div id="itemTable"> 4 5</div> 6</table>
javascript
1var i=1; 2var itemTable=document.getElementById("itemTable"); 3while(i< document.getElementById("size").value){ 4itemTable.insertAdjacent HTML("beforeend", 5"<tr><td><s:property value=' session.item"+i+".name'/></td></tr>" 6+"<tr><td><s:property value=' session.item"+i+".price'/></td></tr>" 7+"<tr><td><s:property value=' session.item"+i+".stock'/></td></tr>"); 8
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 13:51