码迷,mamicode.com
首页 > 其他好文 > 详细

在struts2框架中实现手动处理输入验证

时间:2015-05-11 22:10:33      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:在struts2框架中实现手动处理输入验   validate验证   

    在struts2框架中实现手动处理输入验证,只需要在Action中对父类ActionSupport的validate方法重写即可。就是讲输入验证逻辑写在validate方法中。下面看项目中的Action类checkUser.java
package action;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionSupport;

public class checkUser extends ActionSupport {
private static final long serialVersionUID = 1L;
private String user ;
private String sex;
private String pass;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
public String execute() throws Exception {
return super.execute();
}
@Override
public void validate() {
if (getUser() == null || "".equals(getUser().trim())) {
this.addFieldError("user", "用户名不能为空!");
} else {
Pattern p = Pattern.compile("\\w{6,20}");
Matcher m = p.matcher(getUser().trim());
if (!m.matches()) {
this.addFieldError("user", "用户名由下划线、字母、数字构成,长度为6-20");

}
if(getSex() == null || "".equals(getSex().trim())){
this.addFieldError("sex", "性别不能为空!");
}else if(getSex() != "男" || getSex() != "女"){
this.addFieldError("sex", "性别只能是男和女!");
}
if (getPass() == null || "".equals(getPass().trim())) {
this.addFieldError("pass", "密码不能为空!");
} else {
int s = getPass().trim().length();
if (s<6 || s>30) {
this.addFieldError("pass", "密码长度为应该在6-30之间!");

}
     }
}
这个Action类中多了一个validate方法,其作用是对视图页面传过来的数据进行验证,验证规则则由自己编写。addFUeldError
方法的作用是将错误的信息保存起来,只要有Fidld级别的错误信息,struts2就跳转到input视图。程序中还用到了Pattern和
Matcher两个类,这是java中用于处理正则表达式的类。下面是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="actionCheckUser" extends="struts-default">
<action name="check" class="action.checkUser">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>    


index.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>
    <title>Struts2手动验证</title>
  </head>
  <body>
    <s:fielderror></s:fielderror>
    <s:form action="check.action" theme="simple">
   用户名:<s:textfield name="user" label=""></s:textfield><br/><br/>
   性别框:<s:textfield name="sex" label=""></s:textfield><br/><br/>
   密码框:<s:password name="pass" label=""></s:password><br/><br/>
    <s:submit value="提交"></s:submit>
    </s:form>
  </body>

</html>


其中<s:fielderror></s:fielderror>标记用来显示Action中addFieldError方法封装的错误信息,form标记中的theme=‘simple‘
属性的作用是表单使用struts2的简易主题。





在struts2框架中实现手动处理输入验证

标签:在struts2框架中实现手动处理输入验   validate验证   

原文地址:http://blog.csdn.net/qq_20545159/article/details/45647315

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!