Struts2之基于配置的字段校验
上一篇struts2之输入校验介绍了手动完成输入校验,也即依靠重写validate方法和validateXxx方法,指定请求某个方法时对传入的参数进行校验。
本篇介绍基于配置的字段校验。下面是登录的常见校验:
1、在src目录下创建action类ValidateUserAction
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class ValidateUserAction extends ActionSupport {
private String loginid;
private String loginpwd;
private String msg;
//登录
public String login(){
msg = "登录成功!";
return "success";
}
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getLoginpwd() {
return loginpwd;
}
public void setLoginpwd(String loginpwd) {
this.loginpwd = loginpwd;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
2、在src目录下新建struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "struts-2.1.dtd" >
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="hello" namespace="/" extends="struts-default">
<action name="validateUser_*" method="{1}"
class="com.action.ValidateUserAction">
<result name="success">/index.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
3、在WebContent下新建登录页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/list.css">
<style>
.bg {
width: 658px;
height: 220px;
background: url(images/login.png);
padding-top: 20px;
}
</style>
<title>登录</title>
</head>
<body>
<div style="font-size:25;font-family:微软雅黑">
<b>请输入个人信息</b>
</div>
<form action="validateUser_login.action" method="post">
<div class="bg">
<center>
<p>
账号:<input type="text" name="loginid">
<span style="color:red; font-size:12px;">${fieldErrors['loginid'][0]}</span>
</p>
<p>
密码:<input type="text" name="loginpwd">
<span style="color:red; font-size:12px;">${fieldErrors['loginpwd'][0] }</span>
</p>
<input type="image" src="data:images/sure.jpg">
</center>
</div>
</form>
<body>
</html>
4、在action同级目录下新建ValidateUserAction-validateUser_login-validation.xml配置文件。
文件命名规则:被校验Action的类名-struts.xml中配置的该action的name属性-validate.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="loginid"><!--loginid属性-->
<field-validator type="requiredstring"><!--字符串必填校验器-->
<message>账号不能为空</message>
</field-validator>
<field-validator type="stringlength"><!--字符串长度校验器-->
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message>账号长度必须在${minLength}至${maxLength}之间</message>
</field-validator>
<field-validator type="regex"><!--正则表达式校验器-->
<param name="regexExpression">
<![CDATA[(^[^ ]{1,}$)]]>
</param>
<message>账号中不允许出现空格</message>
</field-validator>
</field>
<field name="loginpwd"><!--loginpwd属性-->
<field-validator type="requiredstring"><!--字符串必填校验器-->
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength"><!--字符串长度校验器-->
<param name="minLength">6</param>
<param name="maxLength">15</param>
<message>密码长度必须在${minLength}至${maxLength}之间</message>
</field-validator>
<field-validator type="regex"><!--正则表达式校验器-->
<param name="regexExpression">
<![CDATA[(^[^ ]{1,}$)]]>
</param>
<message>密码中不允许出现空格</message>
</field-validator>
</field>
</validators>
以下的项目目录结构图

Struts2之基于配置的字段校验的更多相关文章
- Struts2中基于Annotation的细粒度权限控制
Struts2中基于Annotation的细粒度权限控制 2009-10-19 14:25:53| 分类: Struts2 | 标签: |字号大中小 订阅 权限控制是保护系统安全运行很重要 ...
- {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm
Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...
- fieldmeta 基于springboot的字段元数据管理,通用代码生成,快速开发引擎
fieldmeta: 基于springboot的字段元数据管理 version:Alpha 0.0.1 ,码云地址:https://gitee.com/klguang/fieldmeta 元数据(Me ...
- XData -–无需开发、基于配置的数据库RESTful服务,可作为移动App和ExtJS、WPF/Silverlight、Ajax等应用的服务端
XData -–无需开发.基于配置的数据库RESTful服务,可作为移动App和ExtJS.WPF/Silverlight.Ajax等应用的服务端 源起一个App项目,Web服务器就一台,已经装了 ...
- Struts2的通配符配置方式
Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中 ...
- Struts2之环境配置
在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...
- struts2学习笔记(三)—— struts2的常见配置
一.配置文件的加载顺序 每次从客户端发送请求到服务器都要先经过Struts2的核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行.在预处理中主要就 ...
- Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验
Spring MVC数据绑定机制 数据转换 Spring MVC处理JSON 数据格式化配置使用 数据校验 数据校验 Spring MVC数据绑定机制 Spring MVC解析JSON格式的数据: 步 ...
- Struts2 拦截器配置以及实现
@(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...
随机推荐
- HDU——Cover——————【技巧】
Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- Java入门之JDK安装及环境变量配置
一.安装JDK 安装过程中会出现两次安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中. (注:若无安装目录要求,可全默认设置.无需做任何 ...
- 常用CSS样式设置
文字 我们以div标签举例,来设置常见的文字样式 <div>今天天气真晴朗!</div> div { /* 文字大小为14像素 */ font-size: 14px; /* 文 ...
- 基于FPGA的VGA显示设计(二)
上一篇:基于FPGA的VGA显示设计(一) 参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码 的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层 ...
- 进程、内存的理想与现实 VS 虚拟内存
理想情况下一个进程的运行,需要一块足够大的连续的内存进行装载. 现状: 1)内存不够大:分解进程内存空间. 2)内存不连续:内存映射.
- Gym - 100004A 树的性质
题目: 题意: 从节点 0 出发,把每一个节点都经过一遍,然后从一个节点回到学校. 由于有 n+1个节点,n条边,而且保证两两互相到达,那么这就是一个棵树. 于是,可以发现,如果从一个点出发,然后回到 ...
- 2018.7.22 Jdom与dom的区别
SAX 优点:①无需将整个文档加载到内存,因而内存消耗少 ②推模型允许注册多个ContentHandler 缺点:①没有内置的文档导航支持 ②不能够随机访问XML文档 ③不支持在原地修改XML ④不支 ...
- MAC卸载/删除 Parallels Desktop虚拟机的方法
一些MAC用户在自己的电脑上安装了虚拟机之后,想要将它卸载,但是不知道该怎么做.今天小编就为大家带来了这个问题的解决方法. 解决方案(删除/卸载虚拟机 (VM): 1.启动Parallels Desk ...
- _default_ VirtualHost overlap on port 80, the first has precedence
去掉#NameVirtualHost *:80,然后重启httpd
- 旧文备份: 怎样实现SDO服务
SDO是CANopen协议中最复杂的一部分,带有应答机制,有多种传输方式,并且完整的SDO功能节点需提供1个SDO server和多个SDO client,因此SDO的实现异常困难,协议多种传输方式的 ...