index.jsp 输入页面:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入校验</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<s:fielderror/> <!-- 输出校验信息 -->
<form action="${pageContext.request.contextPath}/person/manage_update.action" method="post">
用户名:<input type="text" name="username"/>不能为空<br/>
手机号:<input type="text" name="mobile"/>不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字<br/>
<input type="submit" value="提 交"/></form>
</body>
</html>
PersonAction-validation.xml
两个文件在同一个包中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手机号不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
如果输入用户名为空,则校验后,会提示用户名不为空! 手机号同理。
注意:校验后返回的页面配置必须是input ,web.xml:
<package name="login" extends="struts-default">
<action name="loginAction" class="com.ck.login.LoginAction" method="execute">
<result name="success">/WEB-INF/jsp/admin/index_admin.jsp</result>
<result name="success2">/WEB-INF/jsp/student/index_student.jsp</result>
<result name="failed">index.jsp</result>
<result name="input">index.jsp</result> //校验后返回的视图
</action>
</package>
struts2提供的校验器列表:
required 必填校验器,要求field值不能为null
requiredstring 必填字符串校验器,要求field值不能为null,并且长度大于0,默认取出前后空格
stringlength 字符串长度校验器,要求field的值必须在指定范围内。 minLength最小长度 maxLength最大长度 trim是否取出前后空格
regex 正则表达式校验器,expression参数指定正则表达式,caseSensitive指定进行正则表达式匹配时,是否区分大小写,默认true
int 整数校验器,必须为整数,min最小值,max最大值
double 双精度校验器,要求在指定范围内,min最小值,max最大值
fieldexpression 字段OGNL表达式校验器,要求field满足一个ognl表达式,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行求值,返回true
时校验通过,否则不通过
email 邮件地址校验器,要求field值非空,且必须是合法的邮件地址
url 网址校验器,要求如果field的值非空,且必须是合法的url地址
date 日期校验器,field的日期必须在指定范围内,min最小值,max最大值
conversion 转换校验器,指定类型转换失败时,提示错误信息
visitor 校验action中的复合属性,指定一个校验文件用于校验复合属性中的属性
expression 通fieldexpression,该校验器不可用于字段校验器风格的配置中