上一篇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之基于配置的字段校验的更多相关文章

  1. Struts2中基于Annotation的细粒度权限控制

    Struts2中基于Annotation的细粒度权限控制 2009-10-19 14:25:53|  分类: Struts2 |  标签: |字号大中小 订阅     权限控制是保护系统安全运行很重要 ...

  2. {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm

    Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...

  3. fieldmeta 基于springboot的字段元数据管理,通用代码生成,快速开发引擎

    fieldmeta: 基于springboot的字段元数据管理 version:Alpha 0.0.1 ,码云地址:https://gitee.com/klguang/fieldmeta 元数据(Me ...

  4. XData -–无需开发、基于配置的数据库RESTful服务,可作为移动App和ExtJS、WPF/Silverlight、Ajax等应用的服务端

    XData -–无需开发.基于配置的数据库RESTful服务,可作为移动App和ExtJS.WPF/Silverlight.Ajax等应用的服务端   源起一个App项目,Web服务器就一台,已经装了 ...

  5. Struts2的通配符配置方式

    Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中 ...

  6. Struts2之环境配置

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

  7. struts2学习笔记(三)—— struts2的常见配置

    一.配置文件的加载顺序 每次从客户端发送请求到服务器都要先经过Struts2的核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行.在预处理中主要就 ...

  8. Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验

    Spring MVC数据绑定机制 数据转换 Spring MVC处理JSON 数据格式化配置使用 数据校验 数据校验 Spring MVC数据绑定机制 Spring MVC解析JSON格式的数据: 步 ...

  9. Struts2 拦截器配置以及实现

    @(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...

随机推荐

  1. 文本框只允许输入数字.net/javascript

    <input type="text" name="test" onKeyUp="test1.value=(this.value=this.val ...

  2. knockout更新列表中的某条数据,knockout.js绑定数组时更新其中一条数据

    knockout是一款前端实现MVVM的JS框架,仅knockout.js一个47kb的文件,相当实用,做前端无刷新页面,快速实现JS与HTML数据交互. knockout目前最新版:knockout ...

  3. 定时备份oracle数据库脚本文件

    @echo off REM ########################################################### REM # Windows Server 2003下 ...

  4. 浏览器缓存介绍之sessionStorage、localStorage、Cookie

    Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明.它的主要用途有保存登录信 ...

  5. 错误Cannot find module 'stylus'

    vue项目中使用stylus预处理器写css语法,老是出现 Cannot find module ‘stylus’ 的错误,鼓捣了很久,包括webstorm中配置stylus的支持,安装依赖. 终于找 ...

  6. 添加并发请求PDF到工作流附件

    本节实现将并发请求输出PDF文件添加到工作流附件 省去了工作流中其他部分,只对附件部分介绍 1.       建立一个类型为Document的Attribute

  7. tomcat的相关使用

    tomcat服务器是apache下非常优秀的一款web服务器,当今的互联网企业中90%左右的中小型企业使用的都是tomcat.tomcat在部署项目时有很多很多的解决方案,这些你都清楚吗? 1.同一个 ...

  8. PS:将一个图片变成圆形

    1.选择一张正方形图片并放置到PS软件中 2.选择“选框工具”->右击选择"椭圆选框工具” 3.画出你要圆形内的范围: 4.选择两种方式中的一种,实际上效果是一毛一样的 5.右下角就会 ...

  9. ffmpeg控制台上不能输出信息的解决办法

    最近遇到下面类似的问题 我下载了最新版本(1.1.2)版本的ffmpeg,在windows平台下使用msys+mingw编译成功后,我输入命令后,一点输出信息都没有,例如: ffmpeg -v 这时候 ...

  10. 365. Water and Jug Problem (GCD or BFS) TBC

    https://leetcode.com/problems/water-and-jug-problem/description/ -- 365 There are two methods to sol ...