16. DynaValidatorForm/DynaValidatorActionForm
Struts 16章 DynaValidatorForm/DynaValidatorActionForm
16.1. DynaValidatorFormStrutsにはDynaActionFormとValidatorFormを組み合わせたActionFormも提供されています。「org.apache.validator.DynaValidatorForm」です。DynaValidatorFormでは
の両方の機能が提供されています。Struts設定ファイルでのプロパティの定義はDynaActionFormと同じように行います。プロパティの設定はDynaActionFormと同じことができます。DynaActionFormと異なり、<form-bean>要素のtype属性に「org.apache.struts.validator.DynaValidatorForm」を指定します。またvalidatorの機能も使用しますので、ValidatorPlugInの設定も忘れないようにしてください。 ...
<struts-config>
<form-beans>
<form-bean name="DynaProductForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="name" type="java.lang.String" initial="" />
<form-property name="maker" type="java.lang.String" initial="" />
<form-property name="price" type="int" initial="0" />
</form-bean>
...
<action path="/productInput" name="DynaProductForm" forward="check.jsp" />
...
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
続いてvalidatorの設定を行います。validation.xmlにValidatorFormと同じように設定します。<form>要素のname属性にはStruts設定ファイルに定義したActionFormの名前を設定します。各プロパティに対するチェック内容の設定は、ValidatorFormと同じようにします。 ... <form-validation> 以上でDynaValidatorFormに関する作業は終了で、設定を行うだけでActionクラスで使用することができます。Actionクラスでプロパティ値を取り出す方法は以下の通りです。DynaActionFormの場合と同じです。
package sample;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.validator.DynaValidatorForm;
public class ProductInputAction extends Action{
public ActionFormward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
DynaValidatorForm dynaForm=(DynaValidatorForm)form;
String name=(String)dynaForm.get("name");
String maker=(String)dynaForm.get("maker");
Integer price=(Integer)dynaForm.get("price");
...
}
}
(実習課題1)15章実習課題1のWebアプリケーションを改良しなさい。
|
![]()
![]()
|