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 4612——Warm up——————【边双连通分量、树的直径】
Warm up Time Limit:5000MS Memory Limit:65535KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- Geek to Live: Set up your personal Wikipedia
http://lifehacker.com/163707/geek-to-live--set-up-your-personal-wikipedia Filed to: Wikipedia Captur ...
- MyBatis01--------概念
主程序 读取配置 主配置文件 SQL映射文件 1.什么是框架? ① 框架是一个应用程序的半成品 一个框架程序员可以配置的选择.选项越多,认为这款框架的可扩展性强. 面向 ...
- Hibernate系列4-----之删除
1.和它的增改查兄弟不同,多了个until包定义了HibernateUntil类,让我们来一起看看吧 public class HibernateUntil { private static Conf ...
- intellijidea课程 intellijidea神器使用技巧 5-1 svn相关
subversion ==> show local history 查看历史记录 Ctrl D 历史记录对比 ctrl alt z 复原
- 微信小程序电商实战-首页(下)
好了,上一期我们把首页搜索.导航栏和广告轮播给做完了,那么接下来会继续完成我们首页的剩余部分,先看我们要实现的效果吧! 本期实现效果图.gif 本期我们要实现首页的实时热销榜.福利专场和左下方个人 ...
- vue本地和线上环境(域名)配置
vue本身为运行脚手架项目自家搭载了一个nodejs后台环境,本地可通过proxyTable来处理跨域问题,但是上线(或生产环境)之后改域名真是一件麻烦的事情,所以进行一些配置. config/ind ...
- 无法找到msvcp90.dll的一个碰巧解决办法
作者:朱金灿 来源:http://blog.csdn.net/clever101 上周同事使用VS2008编译一个C++的控制台工程.工程在release模式下可以编译成功,但是运行总是出现无法 ...
- appium (五)desired_caps参数
转自:http://blog.csdn.net/Yejianyun1/article/details/56279051 一.介绍 在appium server 与手机端建立会话关系时,手机端需要 ...
- python+selenium第一个脚本
#coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport tim ...