一Struts的ActionForm的表单验证
ActionForm类用于在视图层和控制层之间传递HTML表单数据控制层可以从ActionForm Bean中读取用户输入的表单数据也可以把来自模型层的数据存放到ActionForm Bean中然后把数据返回给视图即ActionForm Bean从HTML表单中获取用户输入的数据并将传递给Action类也可以把从业务层返回的数据用来填充ActionForm Bean然后JSP页面用它来为HTML表单提供各种输出字段的数据此外ActionForm Bean还具有表单验证功能可以过路不合法的数据
ActionForm Bean有两种存在范围request和session如果ActionForm Bean存在于request范围它仅在当前的请求/响应生命周期中有效如果ActionForm Bean存在于session范围同一个ActionForm Bean实例在整个HTTP会话中都有效
在Struts框架中使用ActionForm Bean来实现应用程序系统的非持久性数据存储和维护功能它采用了自动填充属性和调用的机制所以必须继承ActionForm类并且包涵用户表单输入的属性以及相应的get方法和set方法另外还可以根据需要重写父类的reset()和validate()方法实现属性的重置和表单数据验证功能
validate()方法
这个方法主要负责检查数据的格式和语法而不负责检查数据是否符合业务逻辑
ActionForm基类中的validate()方法在默认情况下将返回null如果创建了ActionForm的子类那么应该在子类覆盖validate()方法
reset()方法
这个方法用于恢复ActionForm Bean 的属性的默认值例如把字符串属性设为null或某个初始值
修改前面我们写的LoginActionForm如果你不清楚的话请您先看前几个实例具体代码如下
public ActionErrors validate(ActionMapping actionMapping
HttpServletRequest httpServletRequest) {
ActionErrors errors = new ActionErrors();
if (username == null|| usernameequals()) {
errorsadd(ActionErrorsGLOBAL_MESSAGE
new ActionError(loginformerrorusername));
}
if (userpass == null||userpassequals()) {
errorsadd(ActionErrorsGLOBAL_MESSAGE
new ActionError(loginformerrorpassword));
}
return errors;
}
这个方法返回ActionErrors对象如果返回的ActionErrors对象为null或者不包含任何ActionMessage对象就表示没有错误数据验证通过如果ActionErrors中包含ActionMessage对象就表示发生了验证错误此时就回把请求转发到你strutsxml里面元素input属性指定的web资源
new ActionError(loginformerrorusername)取得资源文件里面的键值用于页面的输出
[] [] [] [] [] [] [] []