Struts2框架校验(十)
来源:互联网 发布:生物软件下载 编辑:程序博客网 时间:2024/06/07 18:56
(一)框架校验
(一)执行流程.1.提交表单——2.Action类名–validation.xml对表单进行验证。校验正确跳转到Action中执行。校验错误跳转到原提交表单JSP并显示错误信息.
(二)注意事项:
1.Action类名–validation.xml必须创建在Action类所在的包下。只有这样此文件才有校验效果。
2.校验文件必须满足:Action名称—validation.xml,因为每一个Action都有一个校验文件, 只有这样编写校验文件名称,才能识别出它要处理的Action类。
(二) Action名称-validation.xml的配置
1.校验数据的类型有:
此包下:/com/opensymphony/xwork2/validator/validators/default.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator Definition 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd"><!-- START SNIPPET: validators-default --><validators> <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/> <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/> <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/> <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/> <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/> <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/> <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/> <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/> <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/> <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/> <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/> <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/> <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/> <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/> <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/> <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/></validators><!-- END SNIPPET: validators-default -->
2.Action名称-validation.xml的配置
<validators> <!--1.校验Action下的username属性--> <field name="user.username"> <!--2.RequiredStringValidator对表单的username进行校验,其他类型的数据,由相应的校验器来处理--> <field-validator type="requiredstring"> <!--3.向校验器类中传递参数值为true--> <param name="trim">true</param> <!--4.显示错误信息--> <message>账号不能为空</message> </field-validator><validators>
(三)实例演示
1.编写一个表单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>手动输入验证</title></head><body> <!--使用<s:fielderror/>显示输出错误信息提示,不在表单前面添加此标签,无法看到验证错误信息--> <s:fielderror/> <form action="validate" method="post"> 账号:<input type="text" name="user.username"/><br><br> 密码:<input type="password" name="user.password"/><br><br> 年龄:<input type="text" name="user.age"/><br><br> 生日:<input type="text" name="user.birth"/><br><br> <input type="submit" value="登陆"> <input type="reset" value="清空"> </form></body></html>
2.在Action类所在的包下创建UserAction-validation.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><!-- 1.指定校验配置文件的DTD信息 ,本版为1.0.3--><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <!-- 2.编写校验文件根元素 --> <validators> <!--3.校验Action中的属性username--> <field name="user.username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>账号不能为空</message> </field-validator> <field-validator type="regex"> <param name="regex"><![CDATA[(\w{4,25})]]></param> <message>输入账号只能是数值或字母,且长度必须在4到 25之间</message> </field-validator> </field> <!--4.校验Action中的属性password--> <field name="user.password"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>密码不能为空</message> </field-validator> <field-validator type="regex"> <param name="regex"><![CDATA[(\w{4,25})]]></param> <message>输入密码只能是数值或字母,且长度必须在4到 25之间</message> </field-validator> </field> <!--5.校验Action中的属性age--> <field name="user.age"> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>输入年龄必须在1到150之间</message> </field-validator> </field> <!--6.校验Action中的属性birth--> <field name="user.birth"> <field-validator type="date"> <param name="min">1900-01-01</param> <param name="max">2050-01-01</param> <message>生日必须在${min}到${max}之间</message> </field-validator> </field> </validators>
3.创建struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!-- <constant name="struts.devMode" value="true" /> --> <package name="wang" namespace="/" extends="struts-default"> <action name="validate" class="com.wang.UserAction"> <!--1.校验成功,跳转到success.jsp--> <result>/success.jsp</result> <!--2.类型转换失败或校验失败,转换到index.jsp--> <result name="input">/index.jsp</result> </action> </package></struts>
4.编写Action类
package com.wang;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport { private static final long serialVersionUID = 1L; private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; }}
5.编写User类
package com.wang;import java.util.Date;public class User { private String username; private String password; private int age; private Date birth; .........setter,getter方法}
6.结果演示
阅读全文