Struts2的输入校验(1):编写校验规则文件(方法一)

来源:互联网 发布:晚上聊骚用什么软件 编辑:程序博客网 时间:2024/05/16 16:15

Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行校验。

register.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><html><head><title>Insert title here</title></head><body><s:form action="register"><s:textfield name="name" label="姓名"></s:textfield><s:password name="pass" label="密码"></s:password><s:textfield name="age" label="年龄"></s:textfield><s:submit value="注册"></s:submit></s:form></body></html>
上面页面定义了三个表单域,分别对应name,pass和age3个请求参数,假设本应用要求这3个请求参数满足如下规则:

① name不能为空

② pass不能为空

③ age必须在1到150之间

struts.xml :

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"    "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts>    <package name="demo" extends="struts-default">        <action name="register" class="action.RegisterAction">            <result name="success">/success.jsp</result>            <result name="input">/register.jsp</result>        </action>    </package></struts>
RegisterAction.java :

public class RegisterAction extends ActionSupport {private String name;private String pass;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
RegisterAction-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>        <field name="pass">        <field-validator type="requiredstring">            <param name="trim">true</param>            <message>密码不能为空</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>    </validators>

此处xml的dtd可以到xwork-core-2.1.6.jar下找到xwork-validator-1.0.2.dtd文件,将文件中的注释里的DOCTYPE拷出来。

success.jsp :

<body>register success...</body>
校验文件的命名规则是:Action名-validation.xml。当输入校验失败后,Struts2自动返回名为“input”的Result,因此需要在struts.xml文件中配置名为“input”的Result。

这种通过编写校验文件的方式只做一般了解,不做重点掌握。



原创粉丝点击