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>
分享到:
相关推荐
### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...
8. **整合Struts2**:尽管这里讨论的是Struts1的Validator-rules,但在Struts2中,验证机制已经进化为更强大的Struts2 Validation,它提供了更灵活的注解式验证和更丰富的验证选项。 总的来说,Struts的Validator-...
#### 四、Struts2核心技术详解 - **使用web.xml配置Struts2实现Web项目Struts2应用**: - 在`web.xml`文件中配置Struts2的过滤器`FilterDispatcher`,它是Struts2的核心组件。 - 通过指定过滤器的初始化参数,...
Struts验证框架,作为Struts框架的一个重要组成部分,主要用于对用户输入的数据进行合法性检查,确保数据符合预期的格式和约束条件。这一机制不仅提升了应用程序的健壮性,还增强了用户体验,避免了因非法数据导致的...
**Jakarta Struts 1.x 框架详解** Jakarta Struts 是一款经典的Java Web应用程序框架,由Apache软件基金会的Jakarta项目开发并维护。它在2000年代初期广泛流行,为构建MVC(Model-View-Controller)架构的Web应用...
《Struts2环境下的Jcaptcha4Struts2验证码组件详解》 在Web开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如机器人填写表单或进行非法操作。Struts2作为Java Web开发中广泛应用的MVC框架,与...
### Struts2校验框架详解 #### 一、概述 Struts2作为一款流行的Java Web应用框架,提供了丰富的功能来支持开发人员构建高效且可维护的应用程序。其中,Struts2校验框架(Validation Framework)是该框架的核心特性...
### Struts2的工作流程及配置文件详解 #### 一、Struts2简介 Struts2是基于MVC设计模式的Java Web开发框架之一,它继承了Struts1的优点,并在此基础上进行了大量的改进和扩展。Struts2框架的核心是拦截器...
### Struts2校验器类型详解 #### 一、Struts2内建校验器 在探讨Struts2校验器之前,我们首先需要了解这些校验器是如何被定义和集成到框架中的。如文中所述,Struts2的内建校验器主要位于`xwork-2.0.4.jar`压缩包中...
### Struts2校验框架详解 #### 一、引言 在Web开发中,表单数据的有效性验证是一项重要的工作。Struts2框架提供了一套强大的校验机制,可以帮助开发者轻松实现客户端和服务端的数据验证。本文将通过一个具体的示例...
Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...
<taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location> </taglib> ``` - **表单标签**:在Struts 2表单标签库中,表单标签为`<s:form>`。 3. **ActionSupport类**: - `ActionSupport`...
Struts2在设计上更加灵活和强大,提供了更多的特性,例如类型转换、输入校验、拦截器等。 #### 二、Struts2框架特点 - **基于拦截器**:Struts2的核心是一个拦截器栈,它使用拦截器处理请求,这使得扩展和定制非常...
2. <form-beans>元素:form-beans元素用于配置表单验证相关的JavaBean。这个JavaBean通常对应于一个HTML表单,负责封装表单提交的数据。form-bean可以定义多个属性,其中name属性用于标识这个form-bean,是必须配置...
本详解文档将涵盖从Struts2的基本概念到高级特性的详细说明。 1. **Struts2介绍**:Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点,并引入了许多新特性,如OGNL(Object-Graph Navigation Language...
### Struts2配置详解 #### 一、Struts2简介 Struts2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架,用于开发Java EE平台上的动态网站。Struts2提供了一...
### Struts2技术详解 #### 一、Struts2简介 Struts2是Apache基金会旗下的一个开源项目,作为MVC(Model-View-Controller)设计模式的一种实现,它被广泛应用于Java Web应用的开发中。Struts2为Web应用提供了一个...
- **依赖JAR包:**为了使用Struts2进行开发,首先需要下载并安装一系列必要的JAR包,例如`struts2-core-2.x.x.jar`、`xwork-core-2.x.x.jar`、`ognl-2.6.x.jar`等。 - **Web项目创建:**创建一个新的Web项目,并将...