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

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。

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值