`

Struts2框架验证

阅读更多
Struts2验证框架验证用户注册
核心代码如下:
1.用户注册页面register.jsp
Java代码 复制代码
  1. <form action="register.action" method="post">   
  2.     <I><font face="楷体_GB2312" color="#FF0000"><s:fielderror />   
  3.     </font>   
  4.     </I>   
  5.     <!-- 读取显示提示信息 -->   
  6.     <table>   
  7.      <tr>   
  8.       <td>   
  9.        用户名:   
  10.       </td>   
  11.       <td>   
  12.        <input type="text" name="user.userName">   
  13.       </td>   
  14.      </tr>   
  15.      <tr>   
  16.       <td>   
  17.        密码:   
  18.       </td>   
  19.       <td>   
  20.        <input type="password" name="user.password">   
  21.       </td>   
  22.      </tr>   
  23.      <tr>   
  24.       <td>   
  25.        确认密码:   
  26.       </td>   
  27.       <td>   
  28.        <input type="password" name="user.rePassword">   
  29.       </td>   
  30.      </tr>   
  31.   
  32.      <tr>   
  33.       <td>   
  34.        年龄:   
  35.       </td>   
  36.       <td>   
  37.        <input type="text" name="user.age">   
  38.       </td>   
  39.      </tr>   
  40.      <tr>   
  41.       <td>   
  42.        生日:   
  43.       </td>   
  44.       <td>   
  45.        <input type="text" name="user.birthday">   
  46.       </td>   
  47.      </tr>   
  48.      <tr>   
  49.       <td colspan="2">   
  50.        <s:submit value="注册"></s:submit>   
  51.       </td>   
  52.      </tr>   
  53.     </table>   
  54.    </form>  
<form action="register.action" method="post">
    <I><font face="楷体_GB2312" color="#FF0000"><s:fielderror />
    </font>
    </I>
    <!-- 读取显示提示信息 -->
    <table>
     <tr>
      <td>
       用户名:
      </td>
      <td>
       <input type="text" name="user.userName">
      </td>
     </tr>
     <tr>
      <td>
       密码:
      </td>
      <td>
       <input type="password" name="user.password">
      </td>
     </tr>
     <tr>
      <td>
       确认密码:
      </td>
      <td>
       <input type="password" name="user.rePassword">
      </td>
     </tr>

     <tr>
      <td>
       年龄:
      </td>
      <td>
       <input type="text" name="user.age">
      </td>
     </tr>
     <tr>
      <td>
       生日:
      </td>
      <td>
       <input type="text" name="user.birthday">
      </td>
     </tr>
     <tr>
      <td colspan="2">
       <s:submit value="注册"></s:submit>
      </td>
     </tr>
    </table>
   </form>

2.注册成功欢迎页面welcome.jsp
Java代码 复制代码
  1. congratulations!${user.userName} <br>  
congratulations!${user.userName} <br>

3.注册处理action RegisterAction
Java代码 复制代码
  1. package org.kingtoon.action;   
  2. import javax.servlet.http.HttpServletRequest;   
  3. import org.apache.struts2.ServletActionContext;   
  4. import org.kingtoon.bean.User;   
  5. import com.opensymphony.xwork2.ActionSupport;   
  6. public class RegisterAction extends ActionSupport {   
  7.   
  8.   
  9. private User user;   
  10. @Override  
  11. public String execute() throws Exception {   
  12.    if(!(user.getPassword().equals(user.getRePassword()))){   
  13.       this.addFieldError("password""请输入相同的密码");   
  14.       return "input";   
  15.    }    
  16.    else  
  17.    {    
  18.     HttpServletRequest request = ServletActionContext.getRequest ();   
  19.     request.setAttribute("user", user);   
  20.     return SUCCESS;   
  21.    }   
  22.      
  23. }   
  24. public User getUser() {   
  25.    return user;   
  26. }   
  27. public void setUser(User user) {   
  28.    this.user = user;   
  29. }   
  30. }  
package org.kingtoon.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.kingtoon.bean.User;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {


private User user;
@Override
public String execute() throws Exception {
   if(!(user.getPassword().equals(user.getRePassword()))){
      this.addFieldError("password", "请输入相同的密码");
      return "input";
   } 
   else
   { 
    HttpServletRequest request = ServletActionContext.getRequest ();
    request.setAttribute("user", user);
    return SUCCESS;
   }
  
}
public User getUser() {
   return user;
}
public void setUser(User user) {
   this.user = user;
}
}

4. 用户Bean User.java
Java代码 复制代码
  1. package org.kingtoon.bean;   
  2. import java.util.Date;   
  3. public class User {   
  4. private String userName;   
  5. private String password;   
  6. private String rePassword;   
  7. private Integer age;   
  8. private Date birthday;   
  9. public Integer getAge() {   
  10.    return age;   
  11. }   
  12. public void setAge(Integer age) {   
  13.    this.age = age;   
  14. }   
  15. public Date getBirthday() {   
  16.    return birthday;   
  17. }   
  18. public void setBirthday(Date birthday) {   
  19.    this.birthday = birthday;   
  20. }   
  21. public String getPassword() {   
  22.    return password;   
  23. }   
  24. public void setPassword(String password) {   
  25.    this.password = password;   
  26. }   
  27. public String getRePassword() {   
  28.    return rePassword;   
  29. }   
  30. public void setRePassword(String rePassword) {   
  31.    this.rePassword = rePassword;   
  32. }   
  33. public String getUserName() {   
  34.    return userName;   
  35. }   
  36. public void setUserName(String userName) {   
  37.    this.userName = userName;   
  38. }   
  39.   
  40. }  
package org.kingtoon.bean;
import java.util.Date;
public class User {
private String userName;
private String password;
private String rePassword;
private Integer age;
private Date birthday;
public Integer getAge() {
   return age;
}
public void setAge(Integer age) {
   this.age = age;
}
public Date getBirthday() {
   return birthday;
}
public void setBirthday(Date birthday) {
   this.birthday = birthday;
}
public String getPassword() {
   return password;
}
public void setPassword(String password) {
   this.password = password;
}
public String getRePassword() {
   return rePassword;
}
public void setRePassword(String rePassword) {
   this.rePassword = rePassword;
}
public String getUserName() {
   return userName;
}
public void setUserName(String userName) {
   this.userName = userName;
}

}

5.配置验证文件RegisterAction-validation.xml
Java代码 复制代码
  1. <validators>   
  2. <field name="user.userName">   
  3.    <!-- 验证字符串不能为空 -->   
  4.    <field-validator type="requiredstring">   
  5.     <!-- 去空格 -->   
  6.     <param name="trim">true</param>   
  7.     <!-- 错误提示信息 -->   
  8.     <message>用户名不能为空</message>   
  9.    </field-validator>   
  10.      
  11.    <!-- 验证字符串长度 -->   
  12.    <field-validator type="stringlength">   
  13.     <param name="minLength">2</param>   
  14.     <param name="maxLength">20</param>   
  15.     <message>用户名长度应在218个字符间</message>   
  16.    </field-validator>   
  17. </field>   
  18.   
  19. <field name="user.password">   
  20.    <field-validator type="requiredstring">   
  21.     <param name="trim">true</param>   
  22.     <message>密码不能为空</message>   
  23.    </field-validator>   
  24.      
  25.    <field-validator type="stringlength">   
  26.     <param name="minLength">6</param>   
  27.     <param name="maxLength">18</param>   
  28.     <message>密码长度应在618个字符之间</message>   
  29.    </field-validator>   
  30. </field>   
  31.   
  32. <field name="user.age">   
  33.    <field-validator type="int">   
  34.     <param name="min">1</param>   
  35.     <param name="max">150</param>   
  36.     <message>年龄应在1150之间</message>   
  37.    </field-validator>   
  38. </field>   
  39. <!-- 验证字符串为日期类型 -->   
  40. <field name="user.birthday">   
  41.    <field-validator type="date">   
  42.     <param name="min">1900-01-01</param>   
  43.     <param name="max">2008-10-16</param>   
  44.     <message>出生日期应在1900-01-012008-10-16</message>   
  45.    </field-validator>   
  46. </field>   
  47. </validators>  
<validators>
<field name="user.userName">
   <!-- 验证字符串不能为空 -->
   <field-validator type="requiredstring">
    <!-- 去空格 -->
    <param name="trim">true</param>
    <!-- 错误提示信息 -->
    <message>用户名不能为空</message>
   </field-validator>
  
   <!-- 验证字符串长度 -->
   <field-validator type="stringlength">
    <param name="minLength">2</param>
    <param name="maxLength">20</param>
    <message>用户名长度应在2到18个字符间</message>
   </field-validator>
</field>

<field name="user.password">
   <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>密码不能为空</message>
   </field-validator>
  
   <field-validator type="stringlength">
    <param name="minLength">6</param>
    <param name="maxLength">18</param>
    <message>密码长度应在6到18个字符之间</message>
   </field-validator>
</field>

<field name="user.age">
   <field-validator type="int">
    <param name="min">1</param>
    <param name="max">150</param>
    <message>年龄应在1到150之间</message>
   </field-validator>
</field>
<!-- 验证字符串为日期类型 -->
<field name="user.birthday">
   <field-validator type="date">
    <param name="min">1900-01-01</param>
    <param name="max">2008-10-16</param>
    <message>出生日期应在1900-01-01到2008-10-16</message>
   </field-validator>
</field>
</validators>

6.struts2框架默认加载的配置文件struts.xml
Java代码 复制代码
  1. <struts>    
  2.     <constant name="struts.custom.i18n.resources" value="messageResource"></constant>   
  3.        
  4.     <package name="user" extends="struts-default">   
  5.     <action name="register" class="org.kingtoon.action.RegisterAction">   
  6.        <result name="success">/welcome.jsp</result>   
  7.        <result name="input">/register.jsp</result>   
  8.     </action>   
  9.     </package>   
  10. </struts>  
<struts> 
    <constant name="struts.custom.i18n.resources" value="messageResource"></constant>
    
    <package name="user" extends="struts-default">
    <action name="register" class="org.kingtoon.action.RegisterAction">
       <result name="success">/welcome.jsp</result>
       <result name="input">/register.jsp</result>
    </action>
    </package>
</struts>

7.web服务器启动时加载Struts 配置文件 web.xml
Java代码 复制代码
  1. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  4. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
  5. <filter>   
  6.    <filter-name>struts-cleanup</filter-name>   
  7.    <filter-class>   
  8.     org.apache.struts2.dispatcher.ActionContextCleanUp   
  9.    </filter-class>   
  10. </filter>   
  11. <filter>   
  12.    <filter-name>struts2</filter-name>   
  13.    <filter-class>   
  14.     org.apache.struts2.dispatcher.FilterDispatcher   
  15.    </filter-class>   
  16. </filter>   
  17. <filter-mapping>   
  18.    <filter-name>struts-cleanup</filter-name>   
  19.    <url-pattern>/*</url-pattern>   
  20. </filter-mapping>   
  21. <filter-mapping>   
  22.    <filter-name>struts2</filter-name>   
  23.    <url-pattern>/*</url-pattern>   
  24. </filter-mapping>   
  25.   
  26. <welcome-file-list>   
  27.    <welcome-file>register.jsp</welcome-file>   
  28. </welcome-file-list>   
  29. </web-app>  
至此,完毕.不过需要注意:
1.配置验证xml文档的名字有讲究:格式为:Action名字(类)-validation.xml,与类在同一包中;
2.验证文档里的<field-validator type="">中的type类型要和VO中的User属性类型一致,否则会报类型转换错误
分享到:
评论

相关推荐

    struts2框架验证.rar

    这个"struts2框架验证.rar"文件显然包含了使用Struts2进行验证的相关资料,适合在MyEclipse开发环境中使用。下面我们将深入探讨Struts2框架的验证机制及其相关知识点。 首先,Struts2框架提供了强大的表单验证功能...

    SSH4(struts2框架验证)02

    SSH4(struts2框架验证)02SSH4(struts2框架验证)02

    SSH4(struts2框架验证)01

    SSH4(struts2框架验证)01SSH4(struts2框架验证)01SSH4(struts2框架验证)01

    struts2验证框架

    Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...

    struts2验证框架简单实例

    在Struts2框架中,验证框架是其一个重要组成部分,用于确保输入数据的准确性和完整性,从而防止因无效数据导致的程序异常或错误。本实例将带你深入理解Struts2验证框架的使用,以及在实际操作中可能遇到的问题和解决...

    struts2框架2016版资料day01

    5. **拦截器**:拦截器是Struts2的一大特色,它允许开发者在Action调用前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。在day01的课程中,你可能会学习如何定义和使用拦截器,以及如何在配置文件中配置...

    struts2验证框架示例

    这个“struts2验证框架示例”提供了深入理解并实际操作Struts2验证功能的机会。 首先,让我们了解一下Struts2验证框架的基本概念。验证框架基于两个主要组件:Validation拦截器和Action类中的验证配置。Validation...

    Struts2框架源码

    Struts2框架是Java Web开发中的一个流行框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化和可扩展的方式来构建应用程序。此压缩包文件包含的是Struts2的源码,特别适合初学者研究和学习...

    Struts2框架及注释和用法

    Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为构建可维护性高、结构清晰的Web应用程序提供了一种解决方案。这个框架旨在简化开发过程,提高代码的可测试性和可重用性。下面...

    struts2验证框架简单示例

    在Struts2中,验证框架是处理用户输入验证的关键部分,它确保了从客户端接收到的数据的质量和准确性。本示例将深入探讨Struts2验证框架的基本用法,特别适合初学者理解和掌握。 ### 一、Struts2验证框架概述 ...

    struts2框架JAR包

    在那个时期,Struts2已经整合了WebWork框架的核心功能,引入了Action、Result和Interceptor等概念,提供了强大的表单验证和国际化支持。这个版本的Struts2引入了OGNL(Object-Graph Navigation Language)表达式语言...

    struts2框架源码

    Struts2是一个强大的MVC(Model-View-Controller)框架,它是Apache软件基金会下的一个开源项目,被广泛应用于Java EE应用程序开发中。Struts2框架是Struts1的升级版本,它结合了WebWork框架的优点,提供了更高效、...

    Hibernate+struts2框架

    **Hibernate+Struts2框架详解** 在Web应用开发中,Hibernate和Struts2是两个非常重要的框架,它们分别处理持久层和控制层的任务。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作...

    Struts2框架搭建

    Struts2还有许多高级特性,如插件系统、国际化、数据验证、拦截器的自定义、以及与其他框架如Spring、Hibernate的集成。深入学习Struts2将有助于提升开发Web应用的效率和质量。对于初学者来说,了解和实践上述步骤是...

    struts2框架详解

    Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...

    Struts2框架做的用户登录的简单实例

    Struts2框架是一个基于Model-View-Controller(MVC)设计模式的开源Java Web应用程序框架。它简化了Java Servlet API的使用,提供了处理HTTP请求、转发控制和视图渲染的能力。在这个简单的用户登录实例中,我们主要...

    struts2框架基础jar包

    5. **验证框架**:`struts2-validation-plugin.jar`包含Struts2的内置验证框架,可以方便地对用户输入进行验证,并在验证失败时提供反馈。 6. **Tiles框架集成**:虽然Struts1时代就有的Tiles框架在Struts2中仍然...

    struts2验证框架参数

    在深入探讨Struts2验证框架参数之前,我们首先简要回顾一下Struts2框架本身。Struts2是基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它提供了一种灵活的方式来构建可扩展的企业级Web应用程序。...

    Struts2 框架概述

    ### Struts2框架概述 #### 一、Struts2的历史背景与起源 Struts2作为一款备受关注的企业级Web开发框架,在Java Web开发领域占据着举足轻重的地位。尽管Struts2声称自身是一个全新的框架,但从其发展历程来看,这种...

    Struts2极速表单验证框架(注解)

    本篇将详细介绍Struts2的极速表单验证框架,特别是其注解方式的使用。 ### 1. 表单验证的重要性 在Web应用程序中,验证用户输入的数据是必不可少的,因为不正确的数据可能导致业务逻辑错误,甚至安全漏洞。Struts2...

Global site tag (gtag.js) - Google Analytics