开发ActionForm,可以继承3个类:
|-org.apache.struts.action.ActionForm
|-org.apache.struts.validator.ValidatorForm
|-org.apache.struts.validator.ValidatorActionForm
1.使用默认表单ActionForm
新建的ActionForm默认继承自org.apache.struts.action.ActionForm,使用方法就不用多说了
org.apache.struts.action.ActionForm
|--org.apache.struts.validator.ValidatorForm
|--org.apache.struts.validator.ValidatorActionForm
如果该ActionForm扩展ValidatorForm类,就不必覆盖validate()方法, 程序将会通过validation-rules.xml和validation.xml两个文件进行校验。如果重写了validate()方法,则程序只会调用validate()方法。
如果该ActionForm是扩展ValidatorActionForm ,ValidatorActionForm使用struts-config.xml中action的path属性,所以path属性的值相应的应该与validator-rules.xml中的Form的name属性匹配
2.使用动态表单DynaActionForm
使用DynaActionForm可以减少ActionForm的数目,利用它你不必创建一个个具体的ActionForm类,而是在配置文件中配置出所需的虚拟ActionForm即可
<form-beans> <form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="username" type="java.lang.String" /> <form-property name="password" type="java.lang.String" /> </form-bean> </form-beans>
DynaActionForm将属性保存在一个HashMap对象中,同时提供相应的get和set方法。可以通过以下方式来访问属性值。
String username=(String)form.get("username");
3.使用自动校验表单DynaValidatorForm
在配置文件中的配置如下
<form-beans> <form-bean name="loginForm" type="org.apache.struts.action.DynaValidatorForm"> <form-property name="username" type="java.lang.String" /> <form-property name="password" type="java.lang.String" /> </form-bean> </form-beans>
编写好validator.xml,在配置文件中加入插件
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml" /> </plug-in>
在action-mapping中配置
<action-mappings> <action attribute="loginForm" input="/login.jsp" name="loginForm" path="/login" scope="request" validate="true" //---------添加此行----------- type="com.yaung.struts.action.LoginAction" /> </action-mappings>