Struts2中使用校验文件对表单的校验以及常用的校验

之前的手动校是在Action中编写validate犯法或validateXXX形式的方法来完成校验的,如果要给予验证框架来完成输入校验,只需在于Action同一目录下创建一个xml格式的验证文件即可。而之前Action中添加validate方法或validateXXX方法就不需要了。

Action.java代码

package action;

import com.opensymphony.xwork2.ActionSupport;

public class check extends ActionSupport {

private static final long serialVersionUID = 1L;

private String user;

private String pass;

public String getUser() {

return user;

}

public void setUser(String user) {

this.user = user;

}

public String getPass() {

return pass;

}

public void setPass(String pass) {

this.pass = pass;

}

}

struts.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

<package name="struts2yanzheng" extends="struts-default">

<action name="check" class="action.check">

<result name="input">/index.jsp</result>

<result name="success">/success.jsp</result>

</action>

</package>

</struts>

编写一个check-validation.xml的配置文件即可完成工作,注意,这种配置文件的命名是Action名称为validation.xml因为当前的Action是check.java,所以对应的配置文件名称是check-validation.xml。

check-validation.xml代码:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="user">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>必须输入用户名!</message>

</field-validator>

<field-validator type="regex">

<param name="expression"><![CDATA[(/w{4,25})]]></param>

<message>输入的用户名只能是字母和数字,且长度在4到25之间</message>

</field-validator>

</field>

<field name="pass">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>必须输入密码!</message>

</field-validator>

</field>

</validators>

上面的配置文件中定义了不同的错误类型以及相关错误的提示信息,登陆页面

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>基于struts2验证框架验证</title>

</head>

<body>

<s:form action="check">

<s:textfield name="user" label="用户"></s:textfield>

<s:password name="pass" label="密码"></s:password>

<s:submit value="提交"></s:submit>

</s:form>

</body>

</html>

编写校验规则文件

基于Struts2校验框架的校验的校验规则文件的编写尤其重要,校验的文件是xml格式,文件名规则是<Action 名称>-validation.xml.

每个Action都可以对应有一个这样的校验配置文件,用来对当前的Action进行校验。校验文件的根元素是<validators></validators>,

<validators>可以包含多个<field></field>或<validator></validator>元素。<field>用来指定Action中药校验的属性字段名,如下:

<field name="user">

...

</field>

以上的代码说明要对Action中的user字段进行校验,如果有多个属性字段需要验证,添加多个<filed>标记即可,属性字段名称要和<filed>

的那么属性相同。

在<field>标记中一班添加<field-validator>标记,用来指定验证规则。如下:

<field name="user">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>必须输入用户名!</message>

</field-validator>

</field>

<field-validator>的type属性值requiredstring指的是必填字符串校验器,也就是说校验规则是必填字符串校验器。

还需要在<field-validator>标记里添加一个<param>和一个<message>,其作用就是如果user为空的话,提示信息是“必须输入用户名”。

如果还要验证字符串字符多少及其字符组成.

可以使用regex(正则表达式进行验证)。

<field name="user">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>必须输入用户名!</message>

<field-validator type="regex">

<param name="expression"><![CDATA[(/w{4,25})]></param>

<message>用户民只能是字母和数字,并且长度在4-25之间</message>

</field-validator>

</field-validator>

</field>

<param>用于指定正则表达式,<message>用于指定不符合规则的错误信息。<field></field>用来指定设置要校验的字段,

也就是字段校验。

常见的校验器:

必填校验器

<field name="username">

<field-validator type="required">

<message>用户名不能为空!</message>

</field-validator>

</field>

必填字符串校验器

<field name="name">

<field-validator type="requirdstring">

<param name="trim">true</param>

<message>必须输入姓名!</message>

</field-validator>

</field>

整数校验器

<field name="age">

<field-validator type="int">

<param name="min">18</param>

<param name="max">80</param>

<message>年龄的字段必须大于18小于80</message>

</field-validator>

</field>

日期校验器

<field name="birthday">

<field-validator type="date">

<param name="min">1950</param>

<param name="max">2015</param>

<message>出生日期不合法,必须在${min}和${max}之间!</message>

</field-validator>

</field>

字段表达式校验器

<field name="age">

<field-validator type="fieldexpression">

<param name="expression">age>agew</param>

<message>男性年龄必须大于女性年龄!</message>

</field-validator>

</field>

邮件地址校验器

<field name="email">

<field-validator type="email">

<message>邮件地址不合法!</message>

</field-validator>

</field>

网址校验器:

<field name="url">

<field-validator type="url">

<message>url地址不合法!</message>

</field-validator>

</field>

字符串长度校验器

<field name="name">

<field-validator type="stringlength">

<param name="maxLength">15</param>

<param name="minLength">6</param>

<message>姓名长度为6到15个字符!</message>

</field-validator>

</field>

正则表达式校验器:

<field name="name">

<field-validator type="regx">

<param name="expression"><正则表达式内容></param>

<message>不合法</message>

</field-validator>

</field>

时间: 2024-12-20 19:02:11

Struts2中使用校验文件对表单的校验以及常用的校验的相关文章

Struts2中UI标签之表单标签介绍

1.在Struts2中UI标签的表单标签分为两种:form标签本身和单个表单标签. 2.Struts2表单标签包括:form.textfield.password.radio.checkbox.checkboxlist.select.doubleselect.combobox.optiontransferselect.optgroup.updownselect.textarea.hidden.file.label.submit.token.head.datepicker.reset.richte

Struts2中UI标签之表单标签的一个例子

1.最近写了一篇文章,介绍了一下Struts2中UI标签的表单标签,文章地址为:http://blog.csdn.net/u012561176/article/details/44986183  因为缺少了个例子,大家看文字和表格也看不出什么效果来,所以今天来介绍一个例子,用Struts2中UI标签的表单标签实现一个个人信息的表单,但是有些表单标签没有演示出来,大家可以根据我介绍UI标签的表单标签来进行学习,这里只是给个例子. 2.首先新建一个Struts2项目,项目名为PersonMess

关于Struts2中struts.xml文件分层问题

没事折腾struts2,遇到异常,浪费好长时间,于是干脆把所有可能的异常都给跑一遍,来个痛快的. 文件的结构 WEB-INF |------configs |-------struts-common.xml |-------struts.xml |------web.xml 遇到的异常: WARNING: Could not find action or result: /Pro_struts2/common/login!preLogin There is no Action mapped fo

Struts2中实现多文件上传功能

上篇理了一下Struut 2实现文件上传功能的思路,下面接着来看一下多文件上传是如何实现的. 1. 多文件上传也是在单文件上传的基础上,稍微修改一下数据类型和实现方法,即可完成,思路都是大致相同的. 2. 仍然是使用上一篇的项目结构和代码,需要修改的只是UploadAction.java.upload.jsp这两个文件. 3. 修改后的UploadAction.java.upload.jsp这两个文件如下:  UploadAction.java package com.upload.action

struts2中简单的文件上传

2016-08-31 一.       文件上传 利用commons-fileupload-1.2.1.jar实现简单的上传文件,首先在页面上填写表单,记得加上enctype="multipart/form-data",主要是确保上传文件的正确编码,设置表单的MIME编码,让form中的input值以2进制传过去,这样就能用于上传文件了. 2. 配置struts.xml,完成fileUpload与action实例映射, 这里以上传一个图片文件为例 <action name=&qu

struts2中struts.xml文件用通配符配置

在使用struts2的时候,能简单快速地连接action和jsp页面.主要是神奇的配置文件:struts.xml 在起作用. 示例: 这是目录结构: 来一份可用的struts.xml的代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//

Hadoop中的CRC数据校验文件

错误分析: 今天在A程序中生成了数据,然后将A结果数据作为B的输入数据,在查看A结果数据时候,发现有一条数据不符合规则,遂将其删除,删除后执行B程序则报错.尝试打断点,发现程序连map过程都不执行,到了 job.waitForCompletion(true);这一步之后直接就报错了,错误信息为: org.apache.hadoop.fs.ChecksumException: Checksum error: file:/E:/hdpSapce/web_log/out/golden/part-m-0

struts2中的jsp值传到后台action接收的三种方法

struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" name="form1"> 用户名:<s:textfield name="username"/><br/> 密 码:<s:password name="password"/><br/&g

Struts2中jsp前台传值到action后台的三种方式以及valueStack的使用

struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: 1 <form action="login" method="post"name="form1"> 2 3 4 用户名:<s:textfieldname="username"/><br/> 5 密 码:<s:passwordname="password"/>&l