• ベストアンサー

jspの配列表現

strutsを使用しています。 java側からString配列 total をリクエストに渡しているのですが <logic:iterate id="data" name="total" > <bean:write name="data" /> <br> </logic:iterate> と繰り返すことはできるのですが 繰り返すのではなく、jspのほうでtotal[0]やtotal[1]を 個別に表示することは可能でしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

JSP2.0以降であれば、式言語を使えば良いのでは? 例) ---------------------------------------- ${total[0]} <c:out value="${total[1]}" /> ------------------------------------------- http://www.ne.jp/asahi/hishidama/home/tech/java/jsp/el.html#h_array http://www.ibm.com/developerworks/jp/java/library/j-jstl0211/#e

shiren1489
質問者

お礼

回答有難う御座います。 JSP2.0ではないようで、残念ながらc:outを使用することは できませんでした。

その他の回答 (3)

  • root139
  • ベストアンサー率60% (488/809)
回答No.4

${~~~} の部分が式言語といわれるもので、c:out はJSTLのcoreタグライブラリのタグの一つです。#1 ではタグライブラリの属性値としても式言語が使えることの例として書きました。混乱させてしまったのでしたら、ごめんなさい。 JSP2.0 は10年くらい前からある規格ですので、余程古いJavaEEコンテナを使っていない限り対応していると思います。(Tomcat だと Ver.5 以降) c:out が使えなかったのはは #3 の方が指摘されているように taglib を宣言してないからかと。 式言語は下記の様にJSPの地の文に書いても動作するはずですがどうでしょう? <div>${total[0]}</div> ただし、変数の中にHTMLのタグなどが記述されていてもそのまま表示されますので、変数の中身によってはHTMLの特殊文字のエスケープなどを適宜行って下さい。(c:out などで) なお、ここの解答欄にかけることは限られますので、#1 に書いたサイトなどをよく読んで概要をつかむことをお勧めします。

shiren1489
質問者

お礼

回答有難う御座います。 タグライブラリのひとつだったのですね、詳しく調べてみます! ありがとうございました!

noname#147388
noname#147388
回答No.3

#2 の方法でだめなら #1 でしかないですね。 c タグが使えないのは taglib を宣言してないからですよ。

shiren1489
質問者

お礼

なるほどですね! 回答有難う御座います!

noname#147388
noname#147388
回答No.2

そのまま name="total[0]" とかでいけたと記憶している。 セッションに突っ込んで配列として使わないならユニークな名前をつけましょう。

shiren1489
質問者

お礼

回答有難う御座います <bean:write name="total[0]" />ではエラーになってしまいます。 FormにString配列をつくって、setterに渡せば表示は可能なのですが・・・

関連するQ&A

専門家に質問してみよう