ValidateAction.java
package action;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionSupport;
public class ValidateAction extends ActionSupport {
private String name;
private String pass;
private int age;
private Date birth;
@Override
public String execute() throws Exception {
return SUCCESS;
}
public String add(){
return SUCCESS;
}
/*
* 手工编写代码实现对action指定方法输入校验
* public void validate(){
System.out.println("");
if(!name.contains("csdn")){
addFieldError("name","用户名必须包含csdn");
}
}
public void validateAdd(){
if(name==null||name.trim().equals("")){
addFieldError("name","用户名不能爲空");
}else{
if(name.length()<4||name.length()>10){
addFieldError("name","用戶名必須是4到10爲");
}
}
if(age==0){
addFieldError("age","年齡必須不爲0");
}
else if(!Pattern.compile("^([0-9]|[0-9]{2}|100)$").matcher(String.valueOf(age)).matches()){
addFieldError("age","年齡必須爲1-100");
}
}*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}
ValidateAction-login-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<!-- 基于XML配置方式对指定action方法实现输入校验 -->
<field name="name">
<field-validator type="requiredstring" short-circuit="true"><!-- 短路效验器——优先判断 -->
<param name="trim">true</param>
<!-- <message>用户名不能为空!</message> -->
<message key="name.requried"></message><!-- 國際化標籤 -->
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<!-- <message><![CDATA[用戶名應在2-10字符之間]]></message> -->
<message key="name.quesrs"></message>
</field-validator>
</field>
<field name="pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入密码!</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message><![CDATA[密碼應在2-10字符之間]]></message>
</field-validator>
<!-- <field-validator type="regex"> <param name="expression"><![CDATA[\w{4-25}]]></param>
<message>密码之梦4-25!!!</message> </field-validator> -->
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">100</param>
<message>年齡必須是1-100</message>
</field-validator>
</field>
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2014-01-01</param>
<message>生日必须在${min}到${max}之间</message>
</field-validator>
</field>
</validators>
使用国际化标签mess.properties
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>
<constant name="struts.custom.i18n.resources" value="mess"></constant>
<package name="hello" namespace="/hello" extends="struts-default">
<action name="login" class="action.ValidateAction" method="add">
<result name="success">
/index.jsp
</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
login.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>My JSP 'post.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<!-- struts2标签 <s:form action="login" namespace="/hello" method="post" validate="true"></s:form> -->
<s:form action="/hello/login" method="post">
<s:textfield name="name" label="用户名" />
<s:textfield name="pass" label="密码" />
<s:textfield name="age" label="年龄" />
<s:textfield name="birth" label="生日" />
<s:submit value="提交" />
</s:form>
</body>
</html>
index.jsp
<s:property value="name"/>