- PR -

リストボックスの初期値について

1
投稿者投稿内容
ベンジー
会議室デビュー日: 2005/10/11
投稿数: 2
投稿日時: 2005-10-11 18:03
JAVAの初心者で申し訳ないのですが、ご教授願いたいと思います。
下記のようにして、日付のリストボックスを複数作成するようにしました。
リストボックスの初期値をリストボックスごとに設定して
画面に出すことは可能なのでしょうか?
例えば、
上から1番目のリストボックスは0番目の項目を初期値として選択されている。
上から2番目のリストボックスは4番目の項目を初期値として選択されている。
のようにです。
なお、下記については試しました。
1.<html:select の valueで指定する。→全部のリストボックスが同じ初期値になってしまいました。
2.ActionFormで設定する。→Actionにて、FORMのメンバのdate[]に初期値を設定したのですが、dateの最後の項目が初期値としてブラウザに表示されました。
date[0]="2005/10/11"
date[1]="2005/10/12"
date[2]="2005/10/13"
全部のリストボックスが"2005/10/13"となってしまいました。

*** Struts-Config.xml ***
<action path="/newOdr" type="action.NewOdrAction" name="NewOdrForm" scope="request" validate="false">
<forward name="success" path="xxx.jsp"/>
</action>

*** Action(NewOdrAction) ***
request.setAttribute("bean.commodity",objCommodityAry.toArray());
request.setAttribute("bean.date",objDateAry.toArray());

*** Action-Form ***
public class NewOdrForm extends ActionForm {
private String[] name;
private String[] date;

public void setName(String[] name) {
this.name = name;
}
public String[] getName() {
return name;
}
public void setDate(String[] date) {
this.date = date;
}
public String[] getDate() {
return date;
}
}


*** jsp(xxx.jsp) ***
<html:form action="/bbbb">
<logic:iterate id="commodity" name="bean.commodity" scope="request">
<tr class="body">
<td height="9">
<html:select property="date">
<html:optionsCollection name="bean.date" value="key" label="date" />
</html:select>
</td>
</tr>
</logic:iterate>
<input type="submit" value="xxx" name="xx" class="submit">
</html:form>
いのき
ベテラン
会議室デビュー日: 2005/10/06
投稿数: 88
投稿日時: 2005-10-11 18:36
いのきです。

「リストボックス名.selected = true」か「selectIndex」を使用すればいけますよ。


ベンジー
会議室デビュー日: 2005/10/11
投稿数: 2
投稿日時: 2005-10-12 15:58
いのきさん返信ありがとうございました。

自分なりに試した結果、
下記のようにして成功しました。

1.アクションフォームのメンバの配列を、イテレータのカウンタで参照するようにしました。
<bean:define id = "キー" name= "アクションフォーム" property="<%= "name[" + idx + "]" %>" type="java.lang.String"/>

2.プルダウンメニューのVALUE属性へ、上記1で取得した値を渡すようにしました。
<html:select property="name" value="<%= キー %>">




<html:form action="/bbbb">
<logic:iterate id="commodity" name="bean.commodity" scope="request" indexId="idx">
<tr class="body">
<td height="9">
<html:select property="date">
<html:optionsCollection name="bean.date" value="key" label="date" />
</html:select>
</td>
<td height="9">
<bean:define id = "キー" name= "アクションフォーム" property="<%= "name[" + idx + "]" %>" type="java.lang.String"/>
<html:select property="name" value="<%= キー %>">
<html:optionsCollection name="bean.commodity" value="key" label="name" />
</html:select>
</td>
<td height="9">¥0</td>
<td height="9"><html:text property="<%= "num[" + idx + "]" %>" /></td>
<td height="9">¥0</td>
</tr>
</logic:iterate>
<input type="submit" value="xxx" name="xx" class="submit">
</html:form>
1

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