`
z_xiaofei168
  • 浏览: 201003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2详解---->输入校验

阅读更多

struts2详解---->输入校验

      在struts2中,我们可以显示对action的所有方法进行校验或者对action的制定方法进行校验。

    对于输入校验struts2提供了两种实现方法:
       
1、采用手工编写代码实现。
        2、基于XML配置方式实现。

     使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport ,并且提供校验文件 校验文件和action类放在同一个包下 ,文件的取名格式 为:ActionClassName-

validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。 如果 Action类为cn.csdn.action.UserAction,那么该文件的取名就为:UserAction-

validation.xml.

 

<field> 制定action中要校验的属性,<field-validator> 制定校验器,上面制定的校验器

requiredstring是由系统提供的,系统提供了能满足大部分验证需求的校验器,这些校验器的 定义可以在xwork-2.x.jar中的com.opensmphony.xwork2.validator.validators下的

default.xml中找到。<message> 为校验失败后的提示信息,如果需要国际化,可以为message制定key属性,key的值为资源文件中的key.

 

在这个校验文件中,对action中字符窜类型的username属性进行验证,首先要求调用trim()方法去掉空格,然后判断用户是否为空。

 

下面做一个简单的案例:

 

UserAction.java

 

package cn.csdn.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

	/**
	 * @author z_xiaofei168
	 */
	private static final long serialVersionUID = 1L;

	private String name;
	private String pass;
	private String cpass;
	private String email;
	private int age;
	private String phone;

	//以下省略所有属性的set和get方法
}

 

  UserAction-validation.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  		"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
	<!-- 字段校验器:先指定校验的属性:我来校验谁,由谁来校验!  -->
	<field name="name">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户名不能为空</message>
		</field-validator>

		<field-validator type="stringlength">
			<param name="maxLength">12</param>
			<param name="minLength">6</param>
			<param name="trim">true</param>
			<message>用户名长度必须是6~12</message>
		</field-validator>
	</field>
	<field name="pass">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户密码不能为空</message>
		</field-validator>

		<field-validator type="stringlength">
			<param name="maxLength">16</param>
			<param name="minLength">6</param>
			<param name="trim">true</param>
			<message>用户密码长度必须是6~16</message>
		</field-validator>
	</field>
	
	<field name="email">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户邮箱不能为空</message>
		</field-validator>

		<field-validator type="email">
			<message>用户邮箱不合法</message>
		</field-validator>
	</field>

	<field name="age">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户年龄不能为空</message>
		</field-validator>

		<field-validator type="int">
			<param name="max">120</param>
			<param name="min">1</param>
			<message>用户年龄必须位于1-120之间</message>
		</field-validator>
	</field>
	
	<field name="phone">
	   <!-- 正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
			<message>手机号格式不正确!</message>
		</field-validator>
	</field>
</validators>

 

  struts2.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="csdn" extends="struts-default" namespace="/csdn">
		<global-results>
			<result name="input">/index.jsp</result>
		</global-results>

		<action name="register" class="cn.csdn.struts2.action.UserAction"
			method="reg">
			<result name="success">/sc.jsp</result>
		</action>
	</package>
</struts>
 

   index.jsp

 

 

<body>
       <div align="center">
         <h1>用户注册</h1>
         <div>
           <!-- 显示用户验证错误信息的输出呢 -->
           <s:fielderror></s:fielderror>
           
         </div>
         <div>
         <form action="csdn/register.action" method="post">
            <table border="2px">
              <tbody>
                 <tr><td>用户名</td><td><input type="text" name="name"/></td></tr>
                 <tr><td>密码</td><td><input type="password" 

name="pass"/></td></tr>
                 <tr><td>确认密码</td><td><input type="password" 

name="cpass"/></td></tr>
                 <tr><td>邮箱</td><td><input type="text" name="email"/></td></tr>
                 <tr><td>年龄</td><td><input type="text" name="age" 

value="1"/></td></tr>
                 <tr><td>电话</td><td><input type="text" name="phone"/></td></tr>
                 <tr><td></td><td><input type="submit" value="注册"/></td></tr>
              </tbody>
            </table>
        </form>
        
         </div>       
       </div>
  </body>
 
3
15
分享到:
评论

相关推荐

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    Struts的Validator-rules详解

    8. **整合Struts2**:尽管这里讨论的是Struts1的Validator-rules,但在Struts2中,验证机制已经进化为更强大的Struts2 Validation,它提供了更灵活的注解式验证和更丰富的验证选项。 总的来说,Struts的Validator-...

    Struts2讲义-作者:吴峻申

    #### 四、Struts2核心技术详解 - **使用web.xml配置Struts2实现Web项目Struts2应用**: - 在`web.xml`文件中配置Struts2的过滤器`FilterDispatcher`,它是Struts2的核心组件。 - 通过指定过滤器的初始化参数,...

    struts验证框架-validation的验证框架

    Struts验证框架,作为Struts框架的一个重要组成部分,主要用于对用户输入的数据进行合法性检查,确保数据符合预期的格式和约束条件。这一机制不仅提升了应用程序的健壮性,还增强了用户体验,避免了因非法数据导致的...

    jakarta-struts-1.2.4-src.zip_jakarta struts 1_jakarta struts-1.1

    **Jakarta Struts 1.x 框架详解** Jakarta Struts 是一款经典的Java Web应用程序框架,由Apache软件基金会的Jakarta项目开发并维护。它在2000年代初期广泛流行,为构建MVC(Model-View-Controller)架构的Web应用...

    jcaptcha4struts2-demo-2.0.1.zip_DEMO_JCaptcha4Struts2.jar_jcaptc

    《Struts2环境下的Jcaptcha4Struts2验证码组件详解》 在Web开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如机器人填写表单或进行非法操作。Struts2作为Java Web开发中广泛应用的MVC框架,与...

    struts2校验框架

    ### Struts2校验框架详解 #### 一、概述 Struts2作为一款流行的Java Web应用框架,提供了丰富的功能来支持开发人员构建高效且可维护的应用程序。其中,Struts2校验框架(Validation Framework)是该框架的核心特性...

    Struts2的工作流程及配置文件

    ### Struts2的工作流程及配置文件详解 #### 一、Struts2简介 Struts2是基于MVC设计模式的Java Web开发框架之一,它继承了Struts1的优点,并在此基础上进行了大量的改进和扩展。Struts2框架的核心是拦截器...

    struts2校验器类型详解

    ### Struts2校验器类型详解 #### 一、Struts2内建校验器 在探讨Struts2校验器之前,我们首先需要了解这些校验器是如何被定义和集成到框架中的。如文中所述,Struts2的内建校验器主要位于`xwork-2.0.4.jar`压缩包中...

    struts2 校验框架

    ### Struts2校验框架详解 #### 一、引言 在Web开发中,表单数据的有效性验证是一项重要的工作。Struts2框架提供了一套强大的校验机制,可以帮助开发者轻松实现客户端和服务端的数据验证。本文将通过一个具体的示例...

    struts2 Interceptor详解

    Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...

    J2EE考试复习试题-struts2-spring-hibernate(答案整合完毕).doc

    &lt;taglib-location&gt;/WEB-INF/lib/struts2-core-2.0.11.1.jar&lt;/taglib-location&gt; &lt;/taglib&gt; ``` - **表单标签**:在Struts 2表单标签库中,表单标签为`&lt;s:form&gt;`。 3. **ActionSupport类**: - `ActionSupport`...

    Struts入门 详解Struts

    Struts2在设计上更加灵活和强大,提供了更多的特性,例如类型转换、输入校验、拦截器等。 #### 二、Struts2框架特点 - **基于拦截器**:Struts2的核心是一个拦截器栈,它使用拦截器处理请求,这使得扩展和定制非常...

    Struts-config.xml配置详解

    2. &lt;form-beans&gt;元素:form-beans元素用于配置表单验证相关的JavaBean。这个JavaBean通常对应于一个HTML表单,负责封装表单提交的数据。form-bean可以定义多个属性,其中name属性用于标识这个form-bean,是必须配置...

    struts2 详解文档

    本详解文档将涵盖从Struts2的基本概念到高级特性的详细说明。 1. **Struts2介绍**:Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点,并引入了许多新特性,如OGNL(Object-Graph Navigation Language...

    Struts2配置

    ### Struts2配置详解 #### 一、Struts2简介 Struts2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架,用于开发Java EE平台上的动态网站。Struts2提供了一...

    跟我学Java_Web--Struts2技术详解

    ### Struts2技术详解 #### 一、Struts2简介 Struts2是Apache基金会旗下的一个开源项目,作为MVC(Model-View-Controller)设计模式的一种实现,它被广泛应用于Java Web应用的开发中。Struts2为Web应用提供了一个...

    struts2课件

    - **依赖JAR包:**为了使用Struts2进行开发,首先需要下载并安装一系列必要的JAR包,例如`struts2-core-2.x.x.jar`、`xwork-core-2.x.x.jar`、`ognl-2.6.x.jar`等。 - **Web项目创建:**创建一个新的Web项目,并将...

Global site tag (gtag.js) - Google Analytics