第五节(上):struts2验证方法和验证框架的使用

相关代码下载:http://download.csdn.net/detail/a85820069/6843431

一。使用继承ActionSupport类实现验证方法:

ActionSupport类是一个工具类,它实现了Action接口,并且实现了Validateable接口,提供了数据校验功能。

在Validatable接口中定义了一个validate()方法,重写该方法实现数据校验逻辑,并将错误信息添加到ActionSupport类的fieldErrors对象中,然后通过OGNL表达式负责输出到页面。

下面是被重写的validate()方法,addFieldError方法负责添加错误信息(与页面标签有绑定功能,控制错误信息输出位置),getText()方法是国际化信息方法,在配置文件中查找对应的内容。

	@Override
	public void validate() {
		if(null == username || "".equals(username.trim())) {
			addFieldError("username", getText("userErrorMessage"));
		}
		if( null == password || "".equals(password.trim()) ){
			addFieldError("password", getText("passwordErrorMessage"));
		}
	}
validate()方法在execute方法之前被执行, validate()方法执行结束后,Action的fieldErrors里的校验错误不为空,请求将被转发给input逻辑试图。

所以最后需要在struts.xml文件中为该action配置input跳转设置。

下面是struts.xml中的配置,关键在于<result name="input">/Login.jsp</result>配置内容。

		<action name="Login" class="action.LoginAction">
			<result name="input">/Login.jsp</result>
			<result name="success" >/welcome.jsp</result>
			<result name="error" >/error.jsp</result>
		</action>

跳转到input页面后,错误信息会自动展现到页面中。


二。使用struts2的校验框架

使用struts2校验框架需要做两件事。

1.编写校验规则配置文件

2.为action配置input跳转设置。

配置文件如下:

命名规则:ActionName-validation.xml:其中ActionName就是需要校验的Action的类名,且该文件应该与Action的class文件位于同一个路径下。

key表示国际化文档中的KEY。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
	
<validators>
	<field name="username">
		<field-validator type="requiredstring">
			<message key="userErrorMessage"></message>
		</field-validator>
	</field>
	<field name="password">
		<field-validator type="requiredstring">
			<message key="passwordErrorMessage"></message>
		</field-validator>
	</field>
</validators>

下面是struts.xml中的配置,关键在于<result name="input">/Login.jsp</result>配置内容。

		<action name="Login" class="action.LoginAction">
			<result name="input">/Login.jsp</result>
			<result name="success" >/welcome.jsp</result>
			<result name="error" >/error.jsp</result>
		</action>

当提交时,数据格式不满足规则要求时,自动跳转到input页面,并展现错误信息。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值