validator-rules.xml验证框架使用

 要想用到这个 xml 首先 我们要进入 此  xml 复制 其中的 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>

 

 

 

 然后我们开始 写我们的 Userform  此form 非彼form  而是要继承至 ValidatorForm

 要不 就不能使用到 validate.rules 的框架

 

----------------------------------------我写的Userform------------------------------------------------------

package com.form;

 import org.apache.struts.validator.ValidatorForm; 

public class Userform extends ValidatorForm{

 private String username; 

private String password; 

public String getUsername() {

 return username; 

} 

public void setUsername(String username) {

 this.username = username; 

} 

public String getPassword() { 

return password; 

} 

public void setPassword(String password) {

 this.password = password;

 }

 } 

 

 

 

 

 

由于 我们配置完struts-config 里的plugIn 之后 里面需要一个 validation.xml 于是我们要新建个 xml

  内容 如下

<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> 

<form-validation>

 <formset> 

<form name="Userform"> <field property="username" depends="required"></field> 

<field property="password" depends="required"></field>

 </form> 

</formset>

 </form-validation>

 

 

 

 

    *强调  property 是 验证的对象  depends 是使用的 方法.. required 是验证空..validator.rules里面还有别的一些方法  我们要注意

---------------------------------------------Action--------------------------------------------------------

 然后我们 写 Action  这里 我的Action 是这样子

public class Useraction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 

System.out.println("fuck"); 

return new ActionForward("/index.jsp"); }

 }

 

 

 

 

 

Action里就随便写了点东西  让他能 提交到这个地方就行(我们主要是进行验证)

Form 和 Action 都配置完后  你也应该 知道我们接下来做什么 .. 对.. 就是配置struts-config.xml

配置 <form-bean name="Userform" type="com.form.Userform"/>

<action path="/User" type="com.action.Useraction" name="Userform" input="/inde.jsp" scope="request" validate="true"></action>

 也就是正常配置 没别的什么  开启验证 为主要

然后我们就可以在 页面中进行插入 <html:errors>标签

如下:

<body> 

<form action="User.do" method="post"> 

<input type="text" name="username"/><html:errors property="username"/><br/> 

<input type="password" name="password"/><html:errors property="password"/><br/>

 <input type="submit"/> 

</form>

 </body>

 

 

 

 

   msg="errors.required" 这是validator.rules.xml 里面 提供的 返回 错误信息..

所以我们要在 properties文件里 进行配置

                                   errors.required=username is null

我们没分类  所以 username 和 password 会同时都出现 username is null。。。。。。。。。。。。。。。

----------------------------------------------------------处理错误信息一致问题--------------------------------------------

在properties文件里 使用变量 定义 errors.required ={0} is null;

然后分别定义两个  user.username=username        和    user.password=password

然后 在 validation.xml里

 

<form-validation>

 <formset> 

<form name="Userform">

 <field property="username" depends="required">

 **<arg0 key="user.username"/> </field>

 <field property="password" depends="required"> 

**<arg0 key="user.password"/> 

</field>

 </form>

 </formset>

 

 

 

 

 --------------------------------------------Properties文件---------------------------------------------------------------

errors.required={0} is null user.username=username user.password=password

 

 

 

 ------------------------------------------------------------------------------------------------------------------------------

如果想写多个判断的话 就在 validation.xml

里的 <field property="password" depends="required"> required后面直接家,方法名

例如     depends="required,minilegth">

       设置 minilength长度

<var> <var-name>minilength</var-name> <var-value>5</var-value> </var>

 

 

-------------------------------------------------------------------------------------------------------

Properties 文件 写

   errors.required={0} is required.
   errors.minlength={0} can not be less than {1} characters.

 

<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> 

<form-validation>

 <global>

 <constant> 

<constant-name>length</constant-name> //全局变量名 

<constant-value>5</constant-value> //全局变量值

 </constant>

 </global>

 <formset>

 // 对哪个表 进行验证 <form name="Userform">

 //depends 是需要什么类型的 验证 <field property="username" depends="required">

 <arg0 key="username" resource="false"/> </field> <field property="password" depends="required,minilength">

 <arg0 name="required" key="user.password" />

 //resource 是指是否从properties中获取value 

// name是指 对当前哪个验证 使用arg0 变量操作 不写则表示所有

 <arg0 name="minilength" key="user.password" resource="false"/> 

<arg1 key="${var:minilength}" resource="false"/> 

//${var:minilength}是获取下面(全局) 获取的value值

 <var> 

//参数名 

<var-name>minilength</var-name>

 //{var:length} 是获取 全局变量值 //当没有全局变量的时候可以直接写 数! 

<var-value>${var:length}</var-value> 

</var>

 </field> 

</form> 

</formset> 

</form-validation>

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值