struts2的验证和struts1的验证相对来说简单很多,注意的是在Action类的同一级目录下加一个
Action名-validation.xml文件就即可。下面是例题:
1.user.java
package com.lxitedu.validate; public class User { private String name; private String password; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } 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; } @Override public String toString() { return "User [age=" + age + ", email=" + email + ", name=" + name + ", password=" + password + ", sex=" + "]"; } }2.Action.java
package com.lxitedu.validate; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class Action extends ActionSupport implements ModelDriven<User> { private static final long serialVersionUID = 1L; private User user = new User(); @Override public String execute() throws Exception { return SUCCESS; } @Override public User getModel() { return user; } public String run() throws Exception { return INPUT; } }
3.在与Action.java的同一级目录下定义一个Action-validation.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="name"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入名字</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{4,25})]]></param> <message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入密码</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">150</param> <message>年龄必须在1到150之间</message> </field-validator> </field> <field name="email"> <field-validator type="email"> <message>输入正确的email地址</message> </field-validator> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入邮箱</message> </field-validator> </field> </validators>
4.struts.xml
<action name="validate" class="com.lxitedu.validate.Action"> <result name="input">/validate.jsp</result> <result name="success">/validate.jsp</result> </action>
5.validate.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> <title>Insert title here</title> </head> <body> <s:form action="abc/validate.action" > <s:textfield name="name" label="姓名" /> <s:textfield name="password" label="密码"/> <s:textfield name="age" label="年龄"/> <s:textfield name="email" label="邮箱"/> <s:submit/> </s:form> </body> </html>
OK.这就是struts2的一个最最简单的验证过程。。。