- PR -

DynaActionFormのArrayList項目をActionで取得したい

1
投稿者投稿内容
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2008-02-27 21:30
DynaActionFormでArrayListのプロパティを定義します。

動的に作成したArrayListをDynaActionFormに渡して
JSPで表示するところまでは出来たのですが、
フォーム情報として受け取る方法がわかりません。

実際に下記のようなコードを書いております。

コード:
■JSP
<logic:iterate id="datalist" name="data" property="test_cd" indexId="index">
	<TR>
		<TD>
		<html:text name="datamap" property="AAAA"  />
		<html:text name="datamap" property="BBBB" />
		</TD>
	</TR>
</logic:iterate>


■アクションフォームBean
<form-bean name="AdmUpdReportForm"         type="org.apache.struts.validator.DynaValidatorActionForm">
	<form-property name="datalist"            type="java.util.ArrayList" />
</form-bean>

■アクションクラス

public ActionForward updReport(ActionMapping mapping,ActionForm form,
			HttpServletRequest request,HttpServletResponse response) throws Exception {

		DynaActionForm dform = (DynaActionForm) form;
		
		(ArrayList)dform.get("datamap")  ←★ここで取得したい。
		
		saveToken(request);
		
		return mapping.findForward("success");
}
	
■結果
dform.get("datamap")={}



他の方法も試してみました。

コード:
■JSP
<logic:iterate id="datalist" name="data" property="test_cd" indexId="index">
	<TR>
		<TD>
		<html:text name="datamap" property="AAAA" indexed="true" />
		<html:text name="datamap" property="BBBB" indexed="true" />
		</TD>
	</TR>
</logic:iterate>


■アクションフォームBean

同上

■アクションクラス

同上
	
■結果
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0



どのようにすれば、DynaActionFormのArrayListをActionで取得できるのでしょうか?
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2008-02-27 22:08
いきなり前提を崩してしまいますが。。。
ListではなくString[]でもよいということであれば、DynaActionForm#getStrings()を使ってはいかがでしょう?
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2008-02-27 22:23
GENZOさん

ArrayListでは無理なのでしょうか?
Rey
会議室デビュー日: 2004/11/14
投稿数: 7
投稿日時: 2008-02-28 10:27
素朴な疑問ですが、
 dform.get("datamap") ではなく
 dform.get("datalist") では?
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2008-02-28 11:05
Reyさん

ごもっともなツッコミですが。
<datamap>であってるんです。。。
もともと、Mapで受け取ろうと思っていたんですが、
出来なかったのでArrayListに変更しました。
その際、name属性名を変更し忘れました。
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2008-02-28 21:20
引用:

カウンターさんの書き込み (2008-02-27 22:23) より:
ArrayListでは無理なのでしょうか?



ちょっと試した範囲でですが、ArrayListではうまくいきませんでした。
ただ、コレは私のわかる範疇のことですので、無理なのかはちょっとわかりません。

カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2008-02-29 11:36
結局、納期というプレッシャーに負けて
DynaActionFormはやめて、ActionFormで対応しました。

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

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