当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Web框架:Struts高级特性(StrutsAdvancedFeature)验证

Web框架
Struts开发过程中的异常处理机制
ServletContext与ServletConfig分析
使用Ajax的挑战
Web程序从Struts向Stripes框架的移植
Shale不是Struts
Web框架:基于Ajax的应用程序架构汇总
Web框架:使用Ajax技术开发Web应用程序
Web框架:简单理解Hibernate三种状态的概念及互相转化
Web框架:浅谈Struts2中拦截器应用
Web框架:Struts2中的Action
Web框架:Struts2高级文件上传
Web框架:小编谈嵌入XFire服务介绍及实现
Web框架:DWR中signatures标签的使用
WEB框架:小编总结Struts2的经典输入校验
WEB框架:小编祥谈Struts2的数据标签中Action与Bean标签的使用
Web框架:小议struts2类型转换
Web框架:小编浅谈Struts2的pub-sub事件模型
Web框架:小编简述JSF
Web框架:Hibernate事务管理
Web框架:Struts高级特性(StrutsAdvancedFeature)验证

Web框架:Struts高级特性(StrutsAdvancedFeature)验证


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 119 ::
收藏到网摘: n/a

仅当在下列情况下才会在表单bean 中对用户输入进行验证:

? 表单bean 覆盖超类的验证方法

? Struts 配置文件中的<action>元素的验证属性显式地或者缺省设置为TRUE。表

bean 没有关于应用程序的业务逻辑的信息;因此该bean 提供的验证仅限于

一些相对简单的问题,例如,用户是否在每个必填字段中都输入了数据?

Struts 框架的各种部件使得可以进行验证

? Struts 配置文件中的以下<action>子元素将导致使用表单bean registerForm:

<action path=“/register”

type=“strutsEGL.RegisterAction”

name=“registerForm”

input=“/register.jsp”

scope=“request”

<forward name=“success” path=“/home.do”/>

<forward name=“failure”path=“/register.jsp”/>

</action>

如果缺少验证属性,则意味着当ActionServlet 接收到来自HTML 表单对

/register”的请求时,ActionServlet 将在接收用户数据的表单bean 中调用验证方

法。此验证在ActionServlet 访问操作类之前进行。如果丢失了该方法,不会发

生任何错误,在该情况下,验证总是会成功。

? 如果发生了错误,则表单bean 的验证方法将举例说明错误类并将错误条目添加

至该类。registerForm 的验证方法的一个子集为如下所示:

ActionErrors errors=new ActionErrors()

If (username= =unllusername.equals(“”))

{

errors.add(“register”,

new ActionError(error. Register.username))

}

if (openingBalance<0.01)

{

errors.add(“register”,

new ActionError(“error. register. balance”));

}

return errors;

errors.add 方法包括两个参数:

property

用来标识错误类别的Java 字符串。

如果想要在特定的输入字段或输入字段的子集发生错误时

标识该错误,则指定属性值。例如,指定诸如“username

之类的值的优点在于:报告了错误的JSP 中,可以在屏幕上

靠近发生错误的字段的位置显示有关特定HTML 字段的错

误消息,但是,要指示所有错误都属于同一类别,可以对属

性参数指定以下常量:

ActionErrors.GLOBAL_ERROR

error

包含从属性文件派生的“键-字符串”对的键的ActionError 对象。当

配置ActionError 对象时,最多可以包括要代入字符串中用来替代{0}、

1}等的四个值。

?如果从验证方法返回了错误,则ActionServlet 指导对在<action>元素的输入属性中

指定的对象或JSP 进行处理;将处理register.jsp.

? JSP register.jsp. 包括用于显示从验证方法派生的任何错误消息的以下

标记:

<html:errors/>

如果在未发生输入错误的情况下调用JSP,则该标记不显示任何内容,

而在JSP 中将继续进行处理。但是,如果因发生验证故障而调用了JSP

则为用户显示的内容将受到属性文件中是否包括下列键的影响:

errors.header,它导致在所有错误消息前面显示一个字符串;或者

errors.footer,它导致在所有错误消息后面显示一个字符串;或者

errors.hiader,和errors.footer 两者

例如,在ApplicationResources.properties 中,errors.header errors.footer 的“键

-字符串”对以及先前显示的这两个消息键为如下所示,它们各自都在单独的一

行上(但是分成了多行显示以便于您复查):

errors.header=

<p class=“errors”>

The Action failed because of the following reason(s):

<ul class=“errors”>

error.register.username=<li>you must enter a User ID.

error.register.balance=

<li>Your account must start with a positive balance.

Errors.footer=</ul></p>

如果在注册时用户对用户名输入了空白,对余额输入零,则用户将接收到一

个包括两个错误的列表的屏幕:

The Action failed because of the following reason(s):

o You must enter a User ID.

o Your account must start with a positive balance.

可以为标记<html:errors/>指定属性以支持国际化或者只显示有关指定了给

定属性值的错误的信息。通过使用相异属性值,可以在相邻的不同字段中显

示每条错误消息而不是将所有错误置于单个列表中。