博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2内置校验器——完整实例代码
阅读量:7142 次
发布时间:2019-06-29

本文共 5186 字,大约阅读时间需要 17 分钟。

一、校验器的配置风格

1、字段校验器:

<field name="被校验的字段">

       <field-validator type="校验器名">

             <!--此处需要为不同校验器指定数量不等的校验规则-->

              <param name="参数名">参数值</param>

                  ....................

               <!--校验失败后的提示信息,其中key指定国际化信息的key-->

                 <message>校验失败后的提示信息</message>

                 <!--校验失败后的提示信息:建议用getText("I18Nkey"),否则可能出现Freemarker template Error-->

       </field-vallidator>

        <!-- 如果校验字段满足多个规则,下面可以配置多个校验器-->

</field>

 

2、非字段校验器(本实例所使用):

<validator type="校验器名">

          <param name="fieldName">需要被校验的字段</param>

          <!--此处需要为不同校验器指定数量不等的校验规则-->          

    <param name="参数名">参数值</param>

         <message>校验失败后的提示信息</message>

</validator>

两种配置只是风格上的不同,没有本质区别。

二、实例

  本注册项目中使用了4个内置校验器。项目只有一个注册页面(register2.jsp),对应的业务控制器(Register2Action.java)。如果输入的数据经内置验证器验证成功,跳转到success2.jsp。

 

实例步骤如下:

注意:

Register2Action.java和Register2Action-validation.xml在同一个包validatorAction内

register2.jsp和success1.jsp在WebContent下(我用的是Eclipse)同一个文件夹validate内

1、web.xml配置FilterDispatcher

struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*

 

2、编写视图组件(JSP页面)

(1)注册页面(register2.jsp)

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %>
用户注册页面
请输入信息:

 

(2)验证成功页面(success2.jsp)

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %>
校验成功 校验通过,用户信息如下:

姓名:
密码:
年龄:
电话:
邮箱:

 

3、编写业务控制器(Register2Action.java)

package validatorAction;import com.opensymphony.xwork2.ActionSupport;public class Register2Action extends ActionSupport{    private String userName;    private String userPassword;    private String ruserPassword;    private int userTelephone;    private int userAge;    private String userEmail;    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getUserPassword() {        return userPassword;    }    public void setUserPassword(String userPassword) {        this.userPassword = userPassword;    }    public String getRuserPassword() {        return ruserPassword;    }    public void setRuserPassword(String ruserPassword) {        this.ruserPassword = ruserPassword;    }    public int getUserTelephone() {        return userTelephone;    }    public void setUserTelephone(int userTelephone) {        this.userTelephone = userTelephone;    }    public int getUserAge() {        return userAge;    }    public void setUserAge(int userAge) {        this.userAge = userAge;    }    public String getUserEmail() {        return userEmail;    }    public void setUserEmail(String userEmail) {        this.userEmail = userEmail;    }            public String execute(){        return "success";    }        }

 

4、配置struts.xml

/validate/register2.jsp
/validate/success2.jsp

 

5、内置验证器的验证文件(Register2Action-validation.xml)

userName
16
6
姓名长度为${minLength}到${maxLength}个字符!
userPassword
16
6
密码长度为${minLength}到${maxLength}个字符!
userPassword
两次密码不一致!
userAge
1
130
年龄必须在${min}到${max}之间!
userTelephone
22222222
99999999
电话必须在${min}到${max}之间的八位号码!
userEmail
请使用正确的邮件格式!

如果验证失败:

注意文件命名规则(X-validation.xml)

检查stringlength等属性的大小写,还有字段是否和前面匹配;

查看struts-2.3.28.1\src\xwork-core\src\main\resources\xwork-validator-1.0.3.dtd文件,拷贝前4行代码,因版本而异。

等等……

转载地址:http://kwwgl.baihongyu.com/

你可能感兴趣的文章
jpa
查看>>
端游数值设计思路流程
查看>>
Mysql运维管理-Mysql常用基础命令实战4
查看>>
电机综合性能测试系统之汽车耐久性
查看>>
uva-529-枚举
查看>>
做一个快乐的程序员
查看>>
修炼dp(1)
查看>>
Spring --- 异常处理机制
查看>>
leetcode-191-Number of 1 Bits
查看>>
2016.6.18主窗体、子窗体InitializeComponent()事件、Load事件发生顺序以及SeleChanged事件的发生...
查看>>
用Dos黑窗口运行Cmd命令
查看>>
mysql三-1:存储引擎
查看>>
sql执行顺序
查看>>
HDU-4365 Palindrome graph
查看>>
使用ptrace向已运行进程中注入.so并执行相关函数
查看>>
[20190520]exp imp on th fly.txt
查看>>
Activity使用Dialog样式导致点击空白处自动关闭的问题
查看>>
node.js 开发环境配置 和使用方式
查看>>
基于vue-cli的多页面应用脚手架
查看>>
10.24
查看>>