Struts Action ActionForm 分类
Struts Action ActionForm 分类
ForwardAction:
ForwardAction作用:就是为一个单独jsp文件配置一个别名,程序开发中有部分人提出这么一个概念:将程序中所有的JSP文件存放在WEB-INF下,之后每个JSP页面之前不能直接联系。
a.jsp -> *.do -> b.jsp
ForwardAction的配置只需要在struts-config.xml中配置完成。
<action path="/hel" type="org.apache.struts.actions.ForwardAction"
parameter="/WEB-INF/AdvToken.jsp" />
DispatchAction:
通过form的hidden域或action=*.do?传递,例如:
<input type="hidden" name="status" value="insert" />
struts-config.xml中配置action,加个parameter="status"属性
<action
attribute="demoForm"
input="/form/demo.jsp"
name="demoForm"
path="/demo"
scope="request"
type="com.metarnet.han.struts.action.DemoAction"
parameter="status" />
DemoAction extends DispatchAction 中方法名使用
form的hidden域或action=*.do?传递的status的value的名称。
动态ActionForm: org.apache.struts.action.DynaActionForm
不用生成Form文件,Form的属性通过struts-config.xml中的form bean设置,如下:
<form-bean name="mldnForm" type="org.apache.struts.action.DynaActionForm" >
<form-property name="name" type="java.lang.String"></form-property>
<form-property name="password" type="java.lang.String"></form-property>
</form-bean>
Action中 使用demoForm.getString("name") 取值。
动态可验证ActionForm:org.apache.struts.validator.DynaValidatorForm
不仅不用生成Form文件,还可以给Form验证,Form的属性通过struts-config.xml中的form bean设置,
如下:
<form-bean name="hanForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="password" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
</form-bean>
使用验证插件,新建Struts 1.3 Plugin,struts-config.xml中内容如下:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
struts 1.3中WEB-INF下没有validator-rules.xml,我从struts 1.3 lib ->struts-core ->
-> org.apache.struts.validator下复制到WEB-INF下面的。
/WEB-INF/validation.xml内容:
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">
<form-validation>
<formset>
<form name="hanForm">
<field property="name" depends="required">
<arg key="err.name" resource="true" />
</field>
<field property="password" depends="required" >
<arg key="err.password" resource="true" />
</field>
</form>
</formset>
</form-validation>
ApplicationResources.properties 中对应:
err.name = \u59D3\u540D
err.password = \u5BC6\u7801
errors.required = {0} \u4E0D\u80FD\u4E3A\u7A7A\uFF01\uFF01\uFF01~~~~
Action中 使用demoForm.getString("name") 取值。