校验框架输入校验
- /20171011_chr_InnerValidator/src/nuc/sw/action/registAction.java
package nuc.sw.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import nuc.sw.vo.User;
public class registAction extends ActionSupport implements ModelDriven<User> {
private User u=new User();
@Override
public User getModel() {
return u;
}
public String registMethod() {
ActionContext.getContext().getSession().put("user", u);
return "registOK";
}
}
- /20171011_chr_InnerValidator/src/nuc/sw/action/registAction-validation.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="username">
<field-validator type="requiredstring">
<message>用户名必须输入!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">15</param>
<message>用户名长度应在6到15个字符间</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>密码必须输入!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">15</param>
<message>密码长度应在6到15个字符间</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="requiredstring">
<message>确认密码必须输入!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[password==repassword]]></param>
<message>两次密码必须相同!</message>
</field-validator>
</field>
<field name="birth">
<field-validator type="date">
<param name="min">1980-01-01</param>
<param name="max">2017-10-11</param>
<message>生日必须在${min}和${max}之间!</message>
</field-validator>
</field>
<field name="tel">
<field-validator type="requiredstring">
<message>电话必须输入!</message>
</field-validator>
<field-validator type="regex">
<param name="regexExpression">^13[0-9]{9}</param>
<message>电话必须以13开头并为11位!</message>
</field-validator>
</field>
<field name="eamil">
<field-validator type="regex">
<param name="regexExpression">^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$</param>
<message>邮箱格式不正确!</message>
</field-validator>
</field>
</validators>
- /20171011_chr_InnerValidator/src/nuc/sw/vo/User.java
package nuc.sw.vo;
import java.util.Date;
public class User {
private String username;
private String password;
private String repassword;
private Date birth;
private String tel;
private String email;
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 getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- /20171011_chr_InnerValidator/src/struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="regist" namespace="/" extends="struts-default">
<action name="registAction" class="nuc.sw.action.registAction" method="registMethod">
<result name="registOK">
/success.jsp
</result>
<result name="input">
/register.jsp
</result>
</action>
</package>
</struts>
- /20171011_chr_InnerValidator/WebContent/register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页</title>
<sx:head/>
</head>
<body>
<s:form action="registAction" method="post">
<s:textfield label="用户名" name="username" ></s:textfield>
<s:password label="密码" name="password" ></s:password>
<s:password label="确认密码" name="repassword" ></s:password>
<sx:datetimepicker label="生日" name="birth" displayFormat="yyyy-MM-dd"></sx:datetimepicker>
<s:textfield label="电话" name="tel" ></s:textfield>
<s:textfield label="邮箱" name="email" ></s:textfield>
<s:submit value="注册" ></s:submit>
</s:form>
</body>
</html>
- /20171011_chr_InnerValidator/WebContent/success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>欢迎页</title>
</head>
<body>
用户${sessionScope.user.username}已注册成功!用户信息如下:<br>
生日:${sessionScope.user.birth}<br>
电话:${sessionScope.user.tel}<br>
邮箱:${sessionScope.user.email}<br>
</body>
</html>