- PR -

strutsのhtml:checkboxタグについて

1
投稿者投稿内容
saratoga
常連さん
会議室デビュー日: 2001/11/26
投稿数: 28
投稿日時: 2005-01-26 22:03
<環境>
JDK1.4.2_06
Tomcat4.1.31
Eclipse2.1.3
Struts1.1

現在、JSPに表示されている、複数のチェックボックスの値を
Actionで受け取る時の方法について困っていることがあります。

-------------------------------------------------------

strutsを使って、Formで送信された文字列などを受け取るときは、
FormBeanクラスを作成しない場合は、struts-configで
下記のように定義してマッピングします。

<form-bean name="testForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="moji" type="java.lang.String" />
</form-bean>

-------------------------------------------------------

Actionでは下記のように値を受け取ります。

DynaActionForm dynaActionForm = (DynaActionForm) form;
String test = (String) dynaActionForm.get("test");

-------------------------------------------------------

しかし、チェックボックスの場合が同じようにいきません。
JSPで下記のように複数のチェックボックスが表示されるとします。

<logic:iterate id="td" name="testData">
<html:checkbox name="td" property="flg" value="on" indexed="true" /></html:checkbox>
</logic:iterate>

このJSPで表示されたページのソースを見てみると、
下記のように表示されます。nameの部分がインデックス化されています。

<input type="checkbox" name="td[0].flg" value="on"></html:checkbox>

これをFormで送信した場合、どのように受け取るのが理想なのでしょうか。
struts-configでform-beanを定義する際に、String型の配列にしてみましたが
これではうまくとれません。しかもflgという名前が無理なようです。

<form-bean name="testForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="flg" type="java.lang.String[]" />
</form-bean>

-------------------------------------------------------

struts-configでform-beanを定義してるのがダメかと思い、
FromBeanのクラスを別に定義してみましたが、下記のgetter,setterを
作った場合は値がnullになってしまいました。

private String[] flg;

public void setLuckyNo(String[] luckyNo) {
this.luckyNo = luckyNo;
}

public String[] getLuckyNo() {
return luckyNo;
}

-------------------------------------------------------

同じような処理をされた方はいますでしょうか?
どうか、ご教授下さい。
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-26 22:55

JSPタグに値を取るための情報が足りないだけかと思います。

チェックボックスの設定方法は、マニュアルに
乗ってるからよくよく読んでみるとよいかと。
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-26 22:58

ごめん。勘違いしました。

logic:iterateなら viewhelperかな?
1

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