Struts2的验证通过配置xml或者注解的方式。依赖与validationheworkflow接口(被默认的拦截器桟引入)。validation接口执行验证并且创建一些列的错误域。workflow接口检查验证错误的状态,一旦发现,就默认返回"input",
先看一个简单的验证实例:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>表单界面</title> </head> <body> <s:form method="post" action="validationAction"> <s:textfield name="name" label="名字"/> <s:textfield name="age" label="年龄"/> <s:submit value="提交"></s:submit> </s:form> </body> </html>
package com.fuwh.model; import com.opensymphony.xwork2.ActionSupport; public class ValidationAction extends ActionSupport{ private static final long serialVersionUID = 1L; private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("execute the default method!!!"); return SUCCESS; } }
<?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> <!-- 开启debug模式,会自动加载配置文件等等,不用每次更改了配置文件就去重新启动下服务器 --> <constant name="struts.devMode" value="true" /> <package name="validation" extends="struts-default"> <action name="validationAction" class="com.fuwh.model.ValidationAction"> <result name="success">success.jsp</result> <!-- 必须要有input --> <result name="input">index.jsp</result> </action> </package> </struts>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <!-- 配置验证器,文件和action类放在一个地方,命名为action的类名+"-validaiont.xml" --> <validators> <field name="name"> <field-validator type="requiredstring"> <message>年龄必须输入</message> </field-validator> </field> <field name="age"> <field-validator type="int"> <param name="min">12</param> <param name="max">18</param> <message>年龄只能在12到18岁之间</message> </field-validator> </field> </validators>
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page import="java.util.*" %> <!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> 验证成功,返回的界面 </body> </html>
执行结果:
原文:http://www.cnblogs.com/zerotomax/p/6345029.html