- PR -

html:iterateで表示しているtext3つの値を取得したい。

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/06/21
投稿数: 4
投稿日時: 2005-06-21 21:26
はじめまして。
javaをはじめて2ヶ月の初心者です。

Tomcat5.5
jdk1.5
フレームワークでstrutsを使っております。

早速ですが、jspで
<logic:iterate name ="ma017Form" property="delivery" id="delivery" length="5">
 <tr>
  <td><html:text name="delivery" property="id" indexed="true"/></td>
  <td><html:text name="delivery" property="num" indexed="true"/>本</td>
  <td><html:select name="delivery" property="day" indexed="true">
   <html:options property="dayOptions"/>
    </html:select></td>
 </tr>
</logic:iterate>

ma017Formで
private String id = "";
private String num = "";
private String day = "";
private ArrayList delivery = new ArrayList();
private ArrayList dayOptions = new ArrayList();

 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
numとdayも同じようにget・setを作り
 public ArrayList getDayOptions() {
  return dayOptions;
 }
 public void setDayOptions(ArrayList dayOptions) {
  this.dayOptions = dayOptions;
 }
deliveryも同じように作ってあります。

この状態でsubmitボタンを押したとき
deliveryの中に3つ(id・num・day)の値が1セットとなったものが5つ
飛んでる状態だと思うのですが、

実際3列目の値が入ったdeliveryがX5(かける5)となっており
その中のnumは""(ブランク)といった形になってしまいます。

どう記述したら1行目から5行目の値が
綺麗にとれるのでしょうか?

未熟な記述で申し訳ないですが、
ご教授いただけたら幸いです。
また、足りない事がありましたら
ご指摘をいただけたらと思っております。
よろしくお願いします。
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2005-06-22 16:31
こんにちわ。

配列データの受け渡しをしたい場合は
配列の一要素分のクラスを作成するのが一番簡単な方法だと思います。

この場合、一要素は
String id
String num
String day
boolean option(これもかな?)
になるので、

public class Element {
private String id="";
private String num="";
private String day="";
private boolean option = false;
// getter & setter...
}
こんな感じの要素クラスを用意します。

次にこの要素クラスのリストクラスを作って
private List<Element> delivery = new ArrayList<Element>();

これをJSPに渡せば良いかと思います。

追加:
参考投稿
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=7223

[ メッセージ編集済み 編集者: sshir 編集日時 2005-06-22 16:39 ]
未記入
会議室デビュー日: 2005/06/21
投稿数: 4
投稿日時: 2005-06-23 17:20
返信ありがとうございますヾ(〃^∇^)ノ

dayOptionsは日付のセレクトボックスを作るための値が入ってました。

まことに申し訳ないのですが、
返信を見る前に、
この値を格納するクラスを作ることで
解決しました^^

せっかくなのにすみませんorz

しかしありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)