您的位置:首页 > 编程语言 > Java开发

Struts1_07_验证框架

2011-10-18 10:29 197 查看
一、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"

onsubmit="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"的区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: