DynaActionForm (Struts)
DynaActionForm
- ActionFormはリクエストパラメータの値をJavaBeanにセットしてくれるが、プロパティやgetter/setterメソッドのコーディングをする必要があった。
- Strutsには、そのコーディング不要のActionFormとしてDynaActionFormという仕組みがある。
DyanActionFormの使用方法
- Struts設定ファイルに(struts-config.xml)記述する
- 記述例
<form-bean name=”論理名” type=”org.apache.struts.action.DynaActionForm” > <form-property name=”id” type=”java.lang.Integer” initial=”0″/> <form-property name=”name” type=”java.lang.String” /> </form-bean> |
- type属性に「org.apache.struts.action.DynaActionForm」を指定
- form-property要素のname属性にActionFormのプロパティ名を指定
- form-property要素のtype属性にはプロパティの型を指定
- 必要に応じてinitial属性を定義することでプロパティの初期値を指定できる
DyanActionFormで使用できる型
使用可能なプロパティ | 解釈出来ない出来ない場合に値を設定しようとした場合 |
java.math.BigDecimal | (例外発生) |
java.math.BigInteger | (例外発生) |
boolean と java.lang.Boolean | FALSE |
byte と java.lang.Byte | 0 |
char と java.lang.Character | (1文字目のみ設定) |
java.lang.Class | (例外発生) |
double と java.lang.Double | 0 |
float と java.lang.Float | 0 |
int と java.lang.Integer | 0 |
long と java.lang.Long | 0 |
short と java.lang.Short | 0 |
java.lang.String | (すべての値が解釈される) |
java.sql.Date | (例外発生) |
java.sql.Time | (例外発生) |
java.sql.Timestamp | (例外発生) |
- 省略した場合は、プロパティが基本データ型の場合は例外が発生し、オブジェクトの場合は、String型を除いてnullが設定
- String型は空行が設定される.
- 例外が発生して該当機能が使えない場合があるので、特別な理由がない限り、initial属性は、設定する方が安全である。
- 上記の表以外にも配列やその他の型を使用することもできる。