Struts2的输入校验(1)——校验规则文件的编写
Struts2的输入校验(1)
——校验规则文件的编写
Struts2提供了基于验证框架的输入校验,所有的输入校验只要编写配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验。
注:
客户端校验:过滤正常用户的误操作,使用JavaScript代码完成;
服务器端校验:组织非法数据的输入,是整个应用的最后防线,在应用中通过编程的方式实现。
使用Struts2的校验框架进行校验时,无须对程序的代码进行改变,只需要编写校验规则文件即可,校验规则文件制定每个表单域应该满足怎样的输入规则。
(1)现有如下表单需要提交:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册 - 1</title>
</head>
<body>
<s:form action="regist_1">
<s:textfield name="username" key="用户名"/>
<s:password name="password" key="密码"/>
<s:textfield name="age" key="年龄"/>
<s:textfield name="birth" key="生日"/>
<tr>
<td rowspan="1">
<s:reset value="重置" theme="simple"/>
<s:submit value="注册" theme="simple"/>
</td>
</tr>
</s:form>
</body>
</html>
(2)该请求对应的Action代码,这个Action类继承ActionSupport基类,使用其默认的处理逻辑,没有对封装的请求进行任何的校验:
package myAction;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class Regist1Action extends ActionSupport{
//封装请求参数
private String username;
private String password;
private int age;
private Date birth;
//setter、getter方法
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
//处理逻辑使用ActionSupport基类的默认方法
}
(3)为该Action指定一个校验规则文件,对该Action进行校验
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<!-- 校验文件的根元素 -->
<validators>
<!-- 校验Action的username属性 -->
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入用户名</message>
</field-validator>
<field-validator type="regex">
<param name="regex"><![CDATA[(\w(4,25))]]></param>
<message>输入的用户名必须是字母和数字,且长度在4-25之间</message>
</field-validator>
</field>
<!-- 校验Action的password属性 -->
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入密码</message>
</field-validator>
<field-validator type="regex">
<param name="regex"><![CDATA[(\w(4,25))]]></param>
<message>输入的密码必须是字母和数字,且长度在4-25之间</message>
</field-validator>
</field>
<!-- 校验Action的age属性 -->
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年纪必须在1-150之间</message>
</field-validator>
</field>
<!-- 校验Action的birth属性 -->
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-01-01</param>
<message>输入的生日必须在${min}到${max}之间</message>
</field-validator>
</field>
</validators>
注:此配置文件文件名格式为:ActionName-validation.xml,其中ActionName是对应Action的类名,并且此配置文件应该和Acion类在同一个路径下。
Struts2的输入校验(1)——校验规则文件的编写的更多相关文章
- Drools 规则文件语法概述
概述(Overview) 以.drl为扩展名的文件,是Drools中的规则文件,规则文件的编写,遵循Drools规则语法.下面详细介绍一下Drools规则文件语法.具体参考官方文档: https:// ...
- Struts2的输入校验(2)——客户端校验
Struts2的输入校验(2) --客户端校验 Struts2客户端校验的使用: (1)使用Struts2的标签生成输入页面的表单: (2)为该<s:form>元素添加validate=& ...
- Struts2的输入校验
一.Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 校验失败后将Struts2将自动 ...
- Struts2框架(8)---Struts2的输入校验
Struts2的输入校验 在我们项目实际开发中在数据校验时,分为两种,一种是前端校验,一种是服务器校验: 客户端校验:主要是通过jsp写js脚本,它的优点很明显,就是输入错误的话提醒比较及时,能够减轻 ...
- (十三)struts2的输入校验
输入校验是web应用必须处理的问题,要防止用户的误输入和恶意非法输入.struts2给我们提供了非常强大的输入校验体系. 输入校验分为客户端校验和服务器端校验.一般开发中两者都用,但是服务端校验必须使 ...
- JavaWeb框架_Struts2_(六)----->Struts2的输入校验
1. 输入校验章节目录 输入校验概述 客户端校验 服务器端校验 手动编程校验 重写validate方法 重写validateXxx()方法 输入校验流程 校验框架校验 Struts2 内置的校验器 常 ...
- Struts2学习笔记(九)——数据校验
Struts2的数据校验属于服务器端校验,Struts2 支持校验方式 : 手动校验(代码校验) :在服务器端通过编写java代码,完成数据校验 自动校验(配置校验) :XML配置校验(主流) 和 注 ...
- springMVC:校验框架:多规则校验,嵌套校验,分组校验;ssm整合技术
知识点梳理 课堂讲义 学习目标 能够阐述表单验证的分类和区别 能够运用表单验证的常用注解 能够编写表单验证的示例 能够编写SSM整合的应用案例 能够总结SSM整合的步骤 1 校验框架 1.1 入门-视 ...
- 校验 CentOS 7 镜像文件
验证镜像文件的原因 CentOS Vault(http://vault.centos.org/)页脚的镜像站链接上有段英文,指出页脚的镜像站链接不受 CentOS 团队的监控,除此之外还有一个原因就是 ...
随机推荐
- paper 79:MATLAB函数,interp1
在matlab中有一个interp1()函数,可以帮助解决问题,具体情况如下:MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x ...
- sql server output用法说明
带有output的insert语句. @@identity只能返回当前会话最后生产的标识列. 如果一次性插入多条语句的话. 需要返回这些自动生产的标识列. 那么outpu就派上用场了. declar ...
- 救火必备linux命令
系统参数: cat /proc/cpuinfo cpu相关参数 cat /proc/meminfo 内存相关参数 cat /proc/loadavg 负载情况 性能参数: )top M:按内存使用排序 ...
- libSVM 简易使用手册
关于SVM的基础理论知识,可以google这篇文章<SVM的八股简介>,讲解得生动有趣,是入门的极好教材.作为拿来主义者,我更关心怎么用SVM,因此瞄上了台湾林智仁教授提供的libSVM. ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage2
zw版[转发·台湾nvp系列Delphi例程]HALCON DivImage2 procedure TForm1.Button1Click(Sender: TObject);var op : HOpe ...
- [php]使用会话session
<?php /* cookie - 在客户端上存储少了信息(cookie) session(会话) - 解决cookie大小限制/数量/其他 setcookie() - 设置cookie 在客户 ...
- [转]编译Android源代码常见错误解决办法
1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when ...
- Java ActiveMQ 讲解(一)理解JMS 和 ActiveMQ基本使用(转)
转自:http://www.cnblogs.com/luochengqiuse/p/4678020.html?utm_source=tuicool&utm_medium=referral 最近 ...
- 161103、Spring Boot 入门
Spring Boot 入门 spring Boot是Spring社区较新的一个项目.该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验 ...
- SendKeys:基本使用
使用SendKeys将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用Send.若要等待键击启动的任何进程,请使用SendWait. 每个键都由一个或 ...