知识大全 使用Validation框架验证数据

Posted 属性

篇首语:知是行的主意,行是知的功夫。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Validation框架验证数据相关的知识,希望对你有一定的参考价值。

Struts2教程5:使用Validation框架验证数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在《Struts 教程 使用validate方法验证数据》中曾讲到使用validate方法来验证客户端提交的数据 但如果使用validate方法就会将验证代码和正常的逻辑代码混在一起 但这样做并不利于代码维护 而且也很难将过些代码用于其他程序的验证 在Struts 中为我们提供了一个Validation框架 这个框架和Struts x提供的Validation框架类似 也是通过XML文件进行配置

  服务端验证

  下面将给出一个例子来演示如何使用Struts 的validation框架来进行服务端验证 我们可以按著如下四步来编写这个程序

  【第 步】建立Action类(NewValidateAction java)

  packageaction;

   import opensymphony xwork ActionSupport;publicclassNewValidateActionextendsActionSupportprivateStringmsg; //必须输入privateintage; //在 和 之间publicStringgetMsg()returnmsg;publicvoidsetMsg(Stringmsg)this msg=msg;publicintgetAge()returnage;publicvoidsetAge(intage)this age=age;

  下面我们来验证msg和age属性

  【第 步】配置Action类 struts xml的代码

  如下

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><packagename= demo extends= struts default namespace= /test ><actionname= new_validate class= action NewValidateAction ><resultname= input >/validate_form jsp</result><resultname= success >/validate_form jsp</result></action></package></struts>

  【第 步】编写验证规则配置文件

  这是一个基于XML的配置文件 和struts x中的validator框架的验证规则配置文件类似 但一般放到和要验证的 class文件在同一目录下 而且配置文件名要使用如下两个规则中的一个来命名

  

  <ActionClassName> validation xml<ActionClassName> <ActionAliasName> validation xml

  其中<ActionAliasName>就是struts xml中<ation>的name属性值 在本例中我们使用第一种命名规则 所以文件名是NewValidateAction validation xml 文件的内容如下

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEvalidatorsPUBLIC //OpenSymphonyGroup//XWorkValidator //EN validator dtd ><validators><fieldname= msg ><field validatortype= requiredstring ><message>请输入信息</message></field validator></field><fieldname= age ><field validatortype= int ><paramname= min > </param><paramname= max > </param><message>必须在 至 之间</message></field validator></field></validators>

  这个文件使用了两个规则 requiredstring(必须输入)和int(确定整型范围) 关于其他更详细的验证规则 请读者访问来查看

  【第 步】编写数据录入JSP页

  在Web根目录中建立一个validate_form jsp文件 代码如下

  

  <%@pagelanguage= java import= java util * pageEncoding= GBK %><%@taglibprefix= s uri= /struts tags %><linkrel= stylesheet type= text/css <s:urlvalue= /styles/styles css /> ><> <head><title>验证数据</title> </head>  <body><s:formaction= new_validate namespace= /test ><s:textfieldname= msg label= 姓名  /><s:textfieldname= age label= 年龄 /><s:submit/></s:form> </body> </>

  大家要注意一下 如果在struts xml的<package>标签中指定namespace属性 需要在<s:form>中也将namespace和action分开写 如上面代码所示 不能将其连在一起 Struts 需要分开的action和namespace 如下面的代码是错误的

  

  <s:form action= /test/new_validate >  </s:form>

  在上面的程序中还使用了一个styles css来定制错误信息的风格 代码如下

  

   label font style:italic; errorLabel font style:italic;color:red; errorMessage font weight:bold; color:red;

  需要在Web根目录中建立一个styles目录 并将styles css

  假设Web工程的上下文路径是validation 可以使用如下的URL来测试这个程序

  

  显示结果如图 所示

   图

  客户端验证

  在Struts 中实现客户端验证非常简单 只需要在<s:form>中加入一个validate属性 值为true 如<s:form validate= true > </form>即可

  验证嵌套属性

  有一类特殊的属性 即这个属性的类型是另外一个JavaBean 如有一个User类 代码如下

  packagedata;

  

  publicclassUserprivateStringname;privateintage;publicStringgetName()returnname;publicvoidsetName(Stringname)this name=name;publicintgetAge()returnage;publicvoidsetAge(intage)this age=age;

  在NewValidateAction类中加一个user属性 代码如下

  packageaction;

  

  import opensymphony xwork ActionSupport;importdata User;publicclassNewValidateActionextendsActionSupportprivateStringmsg;privateintage;privateUseruser;publicStringgetMsg()returnmsg;publicvoidsetMsg(Stringmsg)this msg=msg;publicintgetAge()returnage;publicvoidsetAge(intage)this age=age;publicUsergetUser()returnuser;publicvoidsetUser(Useruser)this user=user;

  如果要验证NewValidateAction中的user属性 可以使用visitor验证器 操作过程如下

  首先在NewValidateAction validation xml中加入一个<field>标签 代码如下

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEvalidatorsPUBLIC //OpenSymphonyGroup//XWorkValidator //EN validator dtd ><validators>……<fieldname= user ><field validatortype= visitor ><paramname= context >abc</param><paramname= appendPrefix >true</param><message>User:</message></field validator></field></validators>

  其中context参数将作为验证User类属性的文件名的一部分 如user属性返回一个User对象 那么用于验证User对象属性的文件名为User abc validation xml 这个文件要和User class文件在同一个目录中 appendPrefix表示是否在字段里加user 如果为true Struts 就会使用user name在form提交的数据中查找要验证的数据 这个属性的默认值是true 如果出错 Struts 会将<message>标签中的信息加到User abc validation xml文件中的相应错误信息前面

  User abc validation xml文件的内容如下

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEvalidatorsPUBLIC //OpenSymphonyGroup//XWorkValidator //EN validator dtd ><validators><fieldname= name ><field validatortype= requiredstring ><message>请输入name</message></field validator></field><fieldname= age ><field validatortype= int ><paramname= min > </param><paramname= max > </param><message>必须在 至 之间</message></field validator></field></validators>

  下面修改validate_form jsp 代码如下

  

  <s:formvalidate= true action= new_validate namespace= /test ><s:textfieldname= msg label= 姓名  /><s:textfieldname= age label= 年龄 /><s:textfieldname= user name label= 姓名  /><s:textfieldname= user age label= 年龄 /><s:submit/></s:form>

  大家可以看到 最后两个<s:textfield>的name属性是user name和user age 正好是加了前缀的

  现在重新访问 验证界面如图 所示

相关参考

知识大全 Struts2 Validation框架的一些事宜

Struts2Validation框架的一些事宜  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Struts中如何基于validation.xml来启用客户端验证

Struts中如何基于validation.xml来启用客户端验证?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 Validator验证框架入门

Struts1.x系列教程(10):Validator验证框架入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 Validator验证框架高级应用

Struts1.x系列教程(11):Validator验证框架高级应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

知识大全 详解Struts中Validator验证框架的使用

详解Struts中Validator验证框架的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 浅谈Struts2验证框架及用户注册

浅谈Struts2验证框架及用户注册  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Struts

知识大全 php ci框架验证码实例分析

  php代码复制代码代码如下:<?phpclassCaptcha_codevar$width=;var$num=;var$height=;var$name=randcode;publicfun

知识大全 简单的数据验证

Struts1.x系列教程(2):简单的数据验证  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 使用操作符验证表单数据

PHPWeb开发学习实录:使用操作符验证表单数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Struts--使用validate方法验证数据

Struts--使用validate方法验证数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!