【Struts2】(10)校验
2015-12-17 16:56
423 查看
一. 手动输入编码校验
1. 使用addActionError
先创建一个Action继承ActionSupport:public class ValidatorAction extends ActionSupport { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() { return SUCCESS; } @Override public void validate() { if (username == null || "".equals(username.trim())) { addActionError("用户名不能为空!"); } if (username.length() < 3 || username.length() > 10) { addActionError("用户名长度必须不小于3,不大于10!"); } } }
覆写其中的validate方法,这个方法就是最主要的用来验证的方法。
里面的addActionError会自动跳入到一个指定result为input的界面。
在struts中配置新的aciton:
<action name="validator" class="com.thr.struts2.action.ValidatorAction"> <result>/success.jsp</result> </action>这里要注意在全局中添加一个result结果集,用来显示错误界面。
<result name="input">/error.jsp</result>最后是我们的jsp测试页面:
<body> <form action="/web/test/validator.action" method="post"> UserName:<input name="username" /><br /> Password:<input name="password" type="password" /><br /> <input type="submit" value="提交" /> </form> </body>当点击提交就会进入validate验证方法。
2. 使用addFiledError
修改一下之前的验证方法:private boolean isNull(String str) { if (str != null && !"".equals(str.trim())) { return false; } return true; } private boolean validateLength(String str, int minLength, int maxLength) { if (!isNull(str)) { if (str.length() >= minLength && str.length() <= maxLength) { return true; } } return false; } @Override public void validate() { if (isNull(username)) { // addActionError("用户名不能为空!"); addFieldError("username", "用户名不能为空"); } if (!validateLength(username, 3, 10)) { // addActionError("用户名长度必须不小于3,不大于10!"); addFieldError("username", "用户名长度必须不小于3,不大于10"); } if (isNull(password)) { addFieldError("password", "密码不能为空"); } if (!validateLength(password, 6, 12)) { addFieldError("password", "密码长度必须不小于6,不大于12"); } }同样修改全局的结果集跳转到本身页面:
<result name="input">/validator.jsp</result>修改validator.jsp文件:
<form action="/web/test/validator.action" method="post"> UserName:<input name="username" /><s:fielderror fieldName="username"/><br /> Password:<input name="password" type="password" /><s:fielderror fieldName="password"/><br /> <input type="submit" value="提交" /> </form>这样,当你在不同的错误下就会根据fieldName配置的内容在本页面上显示不同的错误。
二. 声明式校验
使用声明式校验就不用覆写validate方法了,只需要在Action包内创建一个同名的Actiong+"-validation".xml文件,我们这里新建ValidatorAction-validation.xml,在里面进行配置:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <validators> <field name="username"> <field-validator type="requiredstring"> <message key="username.requiredstring" /> </field-validator> <field-validator type="stringlength"> <param name="minLength">3</param> <param name="maxLength">10</param> <message>用户名长度必须大于${minLength}个字符,小于${maxLength}个字符</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message key="password.requiredstring" /> </field-validator> <field-validator type="regex"> <param name="regexExpression">[0-9]</param> <message key="password.regex" /> </field-validator> </field> </validators><filed>标签内的是我们要进行校验的字段,<field-validator>中的type表示我们所使用的校验器是什么,<param>是参数,<message>是表示当出现校验不通过的时候所显示的内容。<message>中的<key>就是需要在另个一配置文件中配置的内容。我们这里再创建一个ValidatorAction.properties:
username.requiredstring=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A password.requiredstring=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A password.regex=\u5BC6\u7801\u592A\u7B80\u5355里面配置好我们要显示的内容。
相关文章推荐
- 基于注解的Struts2 的 @action跳转
- Spring搭建的注意事项
- spring切面编程AOP 范例一
- java设计模式----建造者模式
- struts2的基本配置
- java文件上传和下载
- spring mvc 中Uploadify插件的使用
- spring详细配置讲解
- Spring 配置log4j和简单介绍Log4J的使用
- 【Struts2】自定义局部类型转换器
- Java-Logger简单使用
- 记录java异常
- Eclipse导入Erlang项目出现乱码 如何解决
- java.util.logging.Logger使用详解
- Struts2 XML配置详解
- JAVA IO (一) 基础深入理解
- java操作Hbase--增删查
- JAVA NIO(二)基础 内存管理 文件锁定 Socket服务器客户端通信
- Failed to load JavaHL Library解决方法
- 身份证验证格式。Java