- PR -

DynaActionFormで定義したArrayList項目の取得

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 81
投稿日時: 2005-12-12 15:35
現在、struts1.1を使っています。
一つ問題があり困っています。

以下のスレを参考にさせて頂きましたが、うまくいきませんでした。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7223&forum=12&4
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9471&forum=12

DynaActionFormで定義したArrayListの項目にデータを格納し、表示までは
できているのですが、その検索結果をアクション側で取得できないことです。

流れとしては、
マネージャ登録画面表示 ⇒ 検索ボタン押下 ⇒ アクション(データ取得) ⇒ 検索結果表示
 ⇒ 登録ボタン押下 ⇒ アクション(ここで検索結果を取得したい:下記★印の部分が分からない。)

以上、長々と書いてしまいましたが、宜しくお願いします。

■struts-config.xml
<struts-config>
<!-- アクションフォームBean定義 -->
<form-beans>
<form-bean name="dfManagerTorokForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="commandId" type="java.lang.String" initial="" />
<form-property name="shainId" type="java.lang.String" initial="" />
<form-property name="userList" type="java.util.ArrayList" />
</form-bean>
</form-beans>

<!-- アクションフォームBeanとアクションクラスのマッピング定義 -->
<action-mappings>
<action path ="/managerTorok"
type ="action.ManagerTorokAction"
name ="dfManagerTorokForm"
scope ="request"
input ="/ManagerTorok.jsp"
validate="true">
<forward name="jspManagerTorok" path="/jsp/ManagerTorok.jsp"/>
</action>
</action-mappings>
</struts-config>


■アクション
public class ManagerTorokAction extends Action implements MemberSml
{
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res ) throws IllegalAccessException,
InvocationTargetException,
NoSuchMethodException
{
// 移動先画面結果
String nextPage = "";

// メニュー情報の取得
DynaActionForm dfManagerTorokForm = (DynaActionForm)form;
String commandId = ClassSml.EncodeUtf8((String)dfManagerTorokForm.get("commandId"));
String shainId = ClassSml.EncodeUtf8((String)dfManagerTorokForm.get("shainId"));

// データ結果オブジェクト作成
ArrayList resultList = new ArrayList();

// ユーザ情報設定
UtilDba utilDba = new UtilDba();
utilDba.UsersInfoGet(shainId, FLG_OFF);
resultList = utilDba.getResultList();

// 検索押下
if(commandId.equals(BTN_SHAIN_SEARCH))
{
dfManagerTorokForm.set("userList", resultList);
nextPage = JSP_MANAGER_TOROK;
}

// マネージャ登録押下
if(commandId.equals(BTN_MANAGER_TOROK))
{
ArrayList torokList = new ArrayList();
torokList = (ArrayList)dfManagerTorokForm.get("userList"); ← ★★★ こんな感じで取得したい。★★★

nextPage = JSP_MANAGER_TOROK;
}
return(mapping.findForward(nextPage));
}
}

■ManagerTorok.jsp

<html:html>
<head>
<title>マネージャ登録画面</title>
</head>

<body><center>

<html:form method="post" action="/managerTorok">

<html:hidden property="commandId"/>

<font size="+1"><B>【マネージャ登録画面】</B></font><br>

社員ID:<html:text property="shainId" maxlength="10" size="9"/> 

<!-- 検索ボタン -->
<html:button property="btnShainSearch" value="検 索" onclick="shainSearchBtnClick('btnShainSearch')"/><br><br>

<!-- 検索結果 -->
<logic:notEmpty name="dfManagerTorokForm" property="userList">
<table border="1">
<tr>
<td> 社員ID </td>
<td> 社員名 </td>
<td> 役 職 </td>
</tr>

<logic:iterate id="userList" name="dfManagerTorokForm" property="userList" indexId="index" scope="request">
<tr>
<td><bean:write name="userList" property="shainId"/></td>
<td><bean:write name="userList" property="shainMe"/></td>
<td><bean:write name="userList" property="yakshok"/></td>
</tr>
</logic:iterate>

</table><br><br>
</logic:notEmpty>

<!-- マネージャ更新ボタン -->
<html:button property="btnManagerTorok" value="登 録" onclick="managerUpdateBtnClick('btnManagerTorok')"/> 

</html:form></center></center></body>
</html:html>
1

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