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的方法之前,之后或者两 ...
随机推荐
- 操作符&流程控制
运算符:算术运算符 赋值运算符 字符串运算符 递增(++)和递减(--)运算符 逻辑运算符 比较运算符 三元运算符 1.算术运算符 算术运算符,用于完成各种算术运 ...
- Matlab 2013a 和 VS2010 混合编程
最近由于项目需求,某项目的算法是基于MATLAB完成的,在短时间内需要去调用算法功能.因此,基于MATLAB生成DLL, C 调用的方式完成. 环境:MATLAB 2013a + VS2010 + w ...
- jquery截取、判断字符串的长度,中英文都可
计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace([^\x00-\xff]/g,& ...
- C#实现Ping服务器
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 处理移动端自适应布局的方法- calc()与vw
在处理移动端自适应布局时,目前前端最流行的方法应该就是使用媒体查询,来设置HTML的字体大小,然后用rem为单位对Dom的宽高进行设置,这个方法的优势在于兼容性方面很好,劣势则在于当前市场上不同的机型 ...
- 最小正子序列(序列之和最小,同时满足和值要最小)(数据结构与算法分析——C语言描述第二章习题2.12第二问)
#include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_a ...
- selenium select 标签选中
public static int SetSelectedIndex(this IWebDriver webdriver, string selector, int selectedIndex) { ...
- WEB渗透测试之三大漏扫神器
通过踩点和查点,已经能确定渗透的目标网站.接下来可以选择使用漏扫工具进行初步的检测,可以极大的提高工作的效率. 功欲善其事必先利其器,下面介绍三款适用于企业级漏洞扫描的软件 1.AWVS AWVS ( ...
- Java 线程生命周期
|作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此 ...
- POJ-2002 Squares---绕点旋转+Hash
题目链接: https://vjudge.net/problem/POJ-2002 题目大意: 有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少. 相同的四个点,不同顺序构成的正方形视 ...