- PR -

Strutsを使用してjspから入力された値が取得できません。

投稿者投稿内容
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-07-20 22:51
引用:

引用:

この形でHTMLが生成されたならば、Strutsへ提供するリストへのアクセサは
public List getEle() となるのが正解となります。



下記のようにformbeanのsetterを変更して見た所
エラーは、表示されませんがListがまだnullの状態となっています。

---ソース-------------------------------------------
public void setEle(int i,Mailwork_fb mailwork){
if(mailworkfbList==null)mailworkfbList= new ArrayList();
mailworkfbList.add(i,mailwork);
}
----------------------------------------------------
setterが間違っていると思いますがどのように書けばいいか
分かりません。
ご教授お願いします。




すいません、大嘘を書いて混乱させてしまいました。
申し訳ありません・・・

<select name="ele[0].startTimeId">
<option value="hogehoge">
</select>

ここでoptionにhogehogeが選択されたならば
行われる処理は、getEle(0).setStartTimeId("hogehoge")の流れになります。
分解すると
1.getEle(0)でデータを格納したいBeanを取得。
2.取得したBeanにsetStartTimeId("hogehoge")で値をセット。
こうなります。

わくさんが最初に記載してくれたソースにあてはめてみると。。

引用:

public Mailwork_fb getMailworkfbList(int i){
Mailwork_fb form;
if(i > mailworkfbList.size() -1){
for(int j = mailworkfbList.size(); j < i + 1; j++){
form = new Mailwork_fb();
mailworkfbList.add(form);
}
}
return (Mailwork_fb)mailworkfbList.get(i);
}



それらしいコードが書いてあるではないですか!
問題はゲッターの名前だけだったのですね。
冗長な部分をすっきりさせて以下の形に変更してあげてみて下さい。

public Mailwork_fb getEle(int index){
while (this.mailworkfbList.size() <= index) {
this.mailworkfbList.add(new Mailwork_fb());
}
return (Mailwork_fb) this.mailworkfbList.get(index);
}
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2005-07-21 09:52
返信ありがとうございます。

引用:

public Mailwork_fb getEle(int index){
while (this.mailworkfbList.size() <= index) {
this.mailworkfbList.add(new Mailwork_fb());
}
return (Mailwork_fb) this.mailworkfbList.get(index);
}



上記のコードで正常に取得する事ができました。
本当にありがとうございます。

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