Struts1_07_验证框架

一、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"的区别。
阅读更多
个人分类: 课堂笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭