一、Struts的插件机制:
Struts通过插件机制来给用户扩展Struts功能。
1.提供一个PlugIn接口,init(),destroy()。自定义的插件类就去实现就个类。
2.在Struts的配置文件中,用<plug-in className="...">标记来注册到Struts框架中。
二、Struts中验证框架的使用:
1.安装:
1) 在struts配置文件中添加<plug-in>标记来加载验证框架插件:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
2) 把validator-rules.xml和validation.xml放置在项目的WEB-INF目录下。
3) 在struts配置文件中添加一个<message-resources parameter="MessageResources" />,然后在项目源代码路径中添加MessageREsources_xx_xx.properties,在资源文件中把validator-rules.xml中的一些验证框架要使用到消息拷贝进去。
2.使用:
1) 验证框架要求ActionForm必须继承自ValidatorForm或它的子类ValidatorActionForm,不能重写validate()方法,而且在struts配置文件要配置成需要验证(把对应<action>标记的validate设置为true)。
2) 修改validation.xml来配置针对某个ActionForm的验证规则。
3) 在验证失败后跳转到的页面中用<html:messages>来显示错误消息。
3.用Validator框架做客户端javaScript的验证:
1) 在jsp页面中包含<html:javascript>标签,用formName属性指定要验证的表单名。
表单名要跟validation.xml中配置的name一致。
如:<html:javascript formName="userForm"/>
2) 对需要验证的表单定义onsubmit事件,其中事件名称为validate+"要验证的表单名"
如:<form name="userForm" action="login.do"
οnsubmit="return validateUserForm(this)">
三、ValidateForm和ValidateActionForm的区别
如果表单Bean继承自ValidateForm:那么在validation.xml文件中<form>标记配置的name属性值应该对应成struts配置文件中<action>标记的name属性值。
如果表单Bean继承自ValidateActionForm:那么在validation.xml文件中<form>标记配置的name属性值应该对应成struts配置文件中<action>标记的path属性值。这种方式就可针对同一个表单在不同请求路径下的不同验证。
扩展四、如果使用了DispatchAction时,Validate验证框架无法完成工作了。解决方法就是重写org.apache.struts.validator.FieldChecks中所有的方法,添加对parameter="xxx"的区别。
Struts通过插件机制来给用户扩展Struts功能。
1.提供一个PlugIn接口,init(),destroy()。自定义的插件类就去实现就个类。
2.在Struts的配置文件中,用<plug-in className="...">标记来注册到Struts框架中。
二、Struts中验证框架的使用:
1.安装:
1) 在struts配置文件中添加<plug-in>标记来加载验证框架插件:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
2) 把validator-rules.xml和validation.xml放置在项目的WEB-INF目录下。
3) 在struts配置文件中添加一个<message-resources parameter="MessageResources" />,然后在项目源代码路径中添加MessageREsources_xx_xx.properties,在资源文件中把validator-rules.xml中的一些验证框架要使用到消息拷贝进去。
2.使用:
1) 验证框架要求ActionForm必须继承自ValidatorForm或它的子类ValidatorActionForm,不能重写validate()方法,而且在struts配置文件要配置成需要验证(把对应<action>标记的validate设置为true)。
2) 修改validation.xml来配置针对某个ActionForm的验证规则。
3) 在验证失败后跳转到的页面中用<html:messages>来显示错误消息。
3.用Validator框架做客户端javaScript的验证:
1) 在jsp页面中包含<html:javascript>标签,用formName属性指定要验证的表单名。
表单名要跟validation.xml中配置的name一致。
如:<html:javascript formName="userForm"/>
2) 对需要验证的表单定义onsubmit事件,其中事件名称为validate+"要验证的表单名"
如:<form name="userForm" action="login.do"
οnsubmit="return validateUserForm(this)">
三、ValidateForm和ValidateActionForm的区别
如果表单Bean继承自ValidateForm:那么在validation.xml文件中<form>标记配置的name属性值应该对应成struts配置文件中<action>标记的name属性值。
如果表单Bean继承自ValidateActionForm:那么在validation.xml文件中<form>标记配置的name属性值应该对应成struts配置文件中<action>标记的path属性值。这种方式就可针对同一个表单在不同请求路径下的不同验证。
扩展四、如果使用了DispatchAction时,Validate验证框架无法完成工作了。解决方法就是重写org.apache.struts.validator.FieldChecks中所有的方法,添加对parameter="xxx"的区别。