论坛首页 Java企业应用论坛

《研磨struts2》第十章 验证框架 之 10.2 验证框架入门

浏览 1048 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-05-15  

10.2  验证框架入门

10.2.1准备基础资源

通过示例来初步学习一下如何使用Struts2的验证框架,只简单的做这样一个用户注册的功能:用户注册的时候只需要填写自己的账号、姓名、年龄,其中,账号和姓名要求必填,年龄要求必填而且在18岁以上。

1:封装用户注册信息的域对象

ta�Ktr�-�8%�t;text-justify-trim:punctuation'>

10.2.1准备基础资源

 

java代码:
  1. public class UserModel {  
  2.     private String account;  
  3.     private String name;  
  4.     private int age;  
  5.     public String getAccount() {  
  6.         return account;  
  7.     }  
  8.     public void setAccount(String account) {  
  9.         this.account = account;  
  10.     }  
  11.     public String getName() {  
  12.         return name;  
  13.     }  
  14.     public void setName(String name) {  
  15.         this.name = name;  
  16.     }  
  17.     public int getAge() {  
  18.         return age;  
  19.     }  
  20.     public void setAge(int age) {  
  21.         this.age = age;  
  22.     }  
  23.     public String toString(){  
  24.         return "account="+account+",name="+name+",age="+age;  
  25.     }  
  26. }  

2:用户的注册页面

在这个页面上,使用<s:form>表单标签来提交信息,不指定其风格,默认使用xhtml。这个jsp为WebContent/validate/register.jsp,示例如下:

 

java代码:
  1. <%@ page language="java" contentType="text/html; charset=gb2312"  pageEncoding="gb2312"%>  
  2. <%@taglib prefix="s" uri="/struts-tags" %>  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  6. <title>Insert title here</title>  
  7. </head>  
  8. <body>  
  9. 用户注册  
  10. <hr>  
  11. <s:form action="/registerAction.action" method="post">  
  12.     <s:textfield name="user.account" label="账号"/>  
  13.     <s:textfield name="user.name" label="姓名"/>  
  14.     <s:textfield name="user.age" label="年龄"/>  
  15.     <s:submit value="注册"/>  
  16. </s:form>  
  17. </body>  
  18. </html>  

3:注册用的Action

       只是简单实现:接到注册页面传入的数据,并在execute方法中将它打印出来,示例如下:

 

java代码:
  1. public class RegisterAction extends ActionSupport{  
  2.     public UserModel user = new UserModel();  
  3.     public String execute() throws Exception {  
  4.         System.out.println("传入的数据为="+user);  
  5.         return SUCCESS;  
  6.     }     
  7. }  

4:注册成功后的结果页面

       这个页面非常简单,就是简单的显示注册成功的信息,示例如下:

 

java代码:
  1. <%@ page language="java" contentType="text/html; charset=gb2312"  pageEncoding="gb2312"%>  
  2. <%@taglib prefix="s" uri="/struts-tags" %>  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  6. <title>Insert title here</title>  
  7. </head>  
  8. <body>  
  9. 恭喜您注册成功!  
  10. </body>  
  11. </html>  

5:在struts.xml中添加配置


java代码:
  1. <package name="helloworld" extends="struts-default">  
  2.     <action name="registerAction" class="cn.javass.validate.RegisterAction">  
  3.         <result>/validate/success.jsp</result>  
  4.     </action>  
  5. </package>  

所有的工作都准备完了,来运行测试一下,先访问注册页面,然后填入合适的数据,点击注册看看是否能正确提交,并跳转到成功页面。应该是没有问题的,那么,接下来就在这个示例的基础上,来使用验证框架。

10.2.2初会验证框架

在上一节的例子中,并没有使用验证框架。这时候,用户的任何输入都会被RegistAction所接收。

       现在来加入验证框架,非常简单,只需要添加一个xml,这个xml命名为Action类名-validation.xml,放在需要验证的Action类同包下,其内容为这个Action的execute方法运行前要对用户的输入进行的各种验证。

很显然,需要在RegisterAction同包下,新建一个RegisterAction-validation.xml的文件,示例内容如下:

 

java代码:
    margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 1px !important; margin-left: 45px !important; backgr
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics