首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

沿袭ActionSupport

2012-08-26 
继承ActionSupport2.8? 增加数据校验在上面应用中,即使浏览者不输入任何用户名、密码,系统也会处理用户请求

继承ActionSupport

2.8? 增加数据校验

在上面应用中,即使浏览者不输入任何用户名、密码,系统也会处理用户请求。在我们整个HelloWorld应用中,这种空用户名、空密码的情况不会引起太大的问题。但如果数据需要保存到数据库,或者需要根据用户输入的用户名、密码查询数据,这些空输入可能引起异常。

为了避免用户的输入引起底层异常,通常我们会在进行业务逻辑操作之前,先执行基本的数据校验。

2.8.1? 继承ActionSupport

ActionSupport类是一个工具类,它已经实现了Action接口。除此之外,它还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。

在Validatable接口中定义了一个validate()方法,重写该方法,如果校验表单输入域出现错误,则将错误添加到ActionSupport类的fieldErrors域中,然后通过OGNL表达式负责输出。

为了让Struts 2增加输入数据校验的功能,改写程序中的LoginAction,增加重写validate方法。修改后的LoginAction类代码如下:

程序清单:codes\02\2.8\validate1\WEB-INF\src\lee\LoginAction.java

上面的Action类重写了validate方法,该方法会在执行系统的execute方法之前执行,如果执行该方法之后,Action类的fieldErrors中已经包含了数据校验错误,请求将被转发到input逻辑视图处。

为了在校验失败后能将转入名为input的逻辑视图,必须在配置该Action时指定input属性。下面是修改后的login Action的配置片段:

程序清单:codes\02\2.8\validate1\WEB-INF\src\struts.xml

?(点击查看大图)图2.14? 国际化数据校验的错误提示

热点排行