hobby.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-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>Insert title here</title>
<s:head></s:head>
</head>
<body>
<s:debug></s:debug>
<%--生日字段错误--%>
<s:actionerror></s:actionerror>
<s:form action="/hobby/hobby.action">
<s:textfield name="username" label="用户名" requiredLabel="true" requiredPosition="left"></s:textfield>
<s:textfield name="age" label="年龄"></s:textfield>
<s:textfield name="email" label="邮箱" requiredLabel="true" requiredPosition="left"></s:textfield>
<s:password name="password" label="密码" showPassword="true" requiredLabel="true" requiredPosition="left"></s:password>
<s:password name="repassword" label="确认密码" showPassword="true" requiredLabel="true" requiredPosition="left"></s:password>
<s:textfield name="score" label="分数"></s:textfield>
<s:textfield name="url" label="个人主页"></s:textfield>
<s:radio list="{'男','女'}" label="性别" name="gender" requiredLabel="true" requiredPosition="left"></s:radio>
<s:submit value="注册"></s:submit>
</s:form>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="p2" extends="struts-default" namespace="/hobby">
<action name="hobby" class="action.HobbyAction" method="add">
<result name="input">/hobby.jsp</result>
</action>
</package>
</struts>
HobbyAction.java
package action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import module.Hobby;
import module.User;
import service.UserService;
import service.impl.UserServiceImpl;
public class HobbyAction extends ActionSupport implements ModelDriven<Hobby> {
private Hobby hobby=new Hobby();
@Override
public Hobby getModel() {
return hobby;
}
public String add(){
System.out.println(hobby);
return NONE;
}
}
HobbyAction-hobby-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>
<!-- 1. 用户名不能为空-->
<validator type="requiredstring">
<param name="fieldName">username</param>
<message>用户名不能为空</message>
</validator>
<!-- 2. 年龄应该是18-100-->
<validator type="int">
<param name="fieldName">age</param>
<param name="min">18</param>
<param name="max">100</param>
<message>年龄应该为18-100</message>
</validator>
<!-- 3. 邮箱格式应该正确,并且不为空-->
<validator type="email">
<param name="fieldName">email</param>
<message>邮箱应该写正确格式</message>
</validator>
<validator type="requiredstring">
<param name="fieldName">email</param>
<message>邮箱应该不为空</message>
</validator>
<!-- 4. 密码格式应该正确,不能为空,且应该3-8个字符-->
<validator type="stringlength">
<param name="fieldName">password</param>
<param name="minLength">3</param>
<param name="maxLength">8</param>
<message>密码为3-8个字符</message>
</validator>
<validator type="requiredstring">
<param name="fieldName">password</param>
<message>密码不能为空</message>
</validator>
<validator type="expression">
<param name="expression">
<![CDATA[ password == repassword]]>
</param>
<message>确认密码应该和原密码一致</message>
</validator>
<validator type="url">
<param name="fieldName">url</param>
<message>个人主页默认以http://开头</message>
</validator>
<validator type="required">
<param name="fieldName">gender</param>
<message>性别为必填项</message>
</validator>
</validators>
Hobby.java
package module;
import java.util.Date;
public class Hobby {
private String username;
private int age;
private String email;
private String password;
private String repassword;
private int score;
private String url;
private String gender;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
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 int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Hobby{" +
"username='" + username + '\'' +
", age=" + age +
", email='" + email + '\'' +
", password='" + password + '\'' +
", repassword='" + repassword + '\'' +
", score=" + score +
", url='" + url + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
Hobby.properties
invalid.fieldvalue.score=分数应该为数字
最后显示效果: