Strutsリファレンス(逆引き)

Strutsリファレンス
 
Web struts.wasureppoi.com
プロパティにアクセスする(配列、java.util.Map、java.util.List)
スポンサード リンク

ダイナアクションフォームのフォーム定義

<form-beans >
   <form-bean
      name="DynaF2Form"
      type="org.apache.struts.validator.DynaValidatorActionForm" >

      <form-property name="stringData" type="java.lang.String[]" />

      <form-property name="mapData" type="java.util.Map"/>

      <form-property name="listData" type="java.util.List"/>

   </form-bean>
</form-bean>


アクションクラスで、ダイナアクションフォームにアクセスする。

     public ActionForward execute(ActionMapping mapping,
                       ActionForm form,
                       HttpServletRequest request,
                       HttpServletResponse response) {

      // 入力フォームを取得
      DynaActionForm inform = (DynaActionForm)form;

      // Stringデータの取得
      String[] stringData = (String[])inform.get("stringData");
      System.out.println("stringData(" + stringData[0] + ")");

      // Mapデータの設定
      HashMap<String,String> mapData = new HashMap<String,String>();
      mapData.put("map_key1", "map01");
      mapData.put("map_key2", "map02");
      mapData.put("map_key3", "map02");
      inform.set("mapData",mapData);

      // Listデータの設定
      ArrayList<String> listData = new ArrayList<String>();
      listData.add("list01");
      listData.add("list02");
      listData.add("list03");
      inform.set("listData",listData);

      return mapping.findForward("success");
    }


JSPで、ダイナアクションフォームにアクセスする。

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<html><body>
<table>
<tr>
   <td>Stringデータ</td>
   <td><bean:write name = "DynaF2Form" property = "stringData[0]"/></td>
</tr>
<tr>
  <td>Mapデータ</td>
   <td><bean:write name = "DynaF2Form" property = "mapData(map_key1)"/></td>
</tr>
<tr>
  <td>Listデータ</td>
  <td><bean:write name = "DynaF2Form" property = "listData[0]"/></td>
</tr>
</table>
</body></html>

property属性の指定方法
  配列の場合・・・配列のindex番号を指定する。上記例では配列「stringData」のゼロ番目の値を取得している。
  java.util.Mapの場合・・・keyを指定する。上記例ではMAP「mapData」key「map_key1」の値を取得している。
  java.util.Listの場合・・・index番号を指定する。上記例ではList「listData」のゼロ番目の値を取得している。

※配列、Map、Listデータをループしながら全データを表示するには、<logic:iterate>タグを使用します。

スポンサード リンク

ダイナアクションフォームで指定可能なデータ型
プロパティに初期値を設定する(initial,size属性)
プロパティにアクセスする(String、int、boolean)
プロパティにアクセスする(配列、java.util.Map、java.util.List)
プロパティにアクセスする(ネストしたプロパティ)
プロパティをリセットする(resetメソッド)

アクションフォームへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ