表单提交数据的验证
1.验证方式分为硬编码和软编码
硬编码就是通过java代码来实现
软编码就是通过配置文件来实现
注意: 配置文件命名: Action类名-validation.xml
硬编码方式一: 重写ActionSupport类中的validate()方法
@Override
public void validate() {
System.out.println("测试执行没有");
if (StringUtils.isEmpty(user.getUsername())) {
this.addFieldError("username", "用户名不能为空");
}
}
@SkipValidation
public String name() {
return SUCCESS;
}
public void validateRegister() {
if (StringUtils.isEmpty(user.getUsername())) {
this.addFieldError("username", "用户名不能为空");
}
}
配置拦截过后要跳转的页面 success表示不拦截的方法跳转的页面
input表示拦截的方法要跳转的页面
<action name="QueryAction" class="com.xxx.UserAction" method="query">
<result name="success">/success.jsp</result>
<result name="input">/query.jsp</result>
</action>
2.软编码进行表单提交数据的验证
// 以注册为例 用配置文件对数据进行验证
<?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>
<field name="username">
<field-validator type="requiredstring">
<message>请输入用户名</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="max">60</param>
<param name="min">18</param>
<message>你年龄不符合要求</message>
</field-validator>
</field>
<field name="email">
<field-validator type="email">
<message>邮箱不对呀</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">8</param>
<param name="minLength">3</param>
<message>密码长度不符合要求</message>
</field-validator>
</field>
<field name="url">
<field-validator type="url">
<message>url不符合要求</message>
</field-validator>
</field>
<field name="gender">
<field-validator type="required">
<message>必须选择性别</message>
</field-validator>
</field>
<validator type="expression">
<param name="expression">
password == repassword
</param>
<message>两次密码不一致</message>
</validator>
</validators>
// 在注册页面进行错误信息的提示
<%@ 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>
</head>
<body>
<form action="${pageContext.request.contextPath }/CustomerAction_register" method="post">
用户名<input type="text" name="username" value="${param.username }">
<s:property value="errors.username[0]"/><br/>
邮箱<input type="email" name="email">
<s:property value="errors.email[0]"/><br/>
年龄<input type="text" name="age">
<s:property value="errors.age[0]"/><br/>
密码<input type="password" name="password">
<s:property value="errors.password[0]"/><br/>
确认密码<input type="password" name="password">
<s:property value="errorMessages[0]"/><br/>
url<input trpe="url" name="url"><br/>
<s:property value="errors.url[0]"/><br/>
性别<input type="radio" name="gender" value="男">
<input type="radio" name="gender" value="女">
<s:property value="errors.gender[0]"/><br/>
<input type="submit" value="提交">
</form>
<s:debug></s:debug>
</body>
</html>