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

来源:互联网 发布:linux fcitx 编辑:程序博客网 时间:2024/06/06 05:52

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

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

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

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

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

@Overridepublic 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页面,并展现错误信息。



0 0
原创粉丝点击