Struts从零开始五、Struts中验证数据实例[1]

 我来答
舒适还明净的海鸥i
2022-11-21 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:68.8万
展开全部

   一 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 ServletRequest) {

  ActionErrors errors = new ActionErrors();

  if (username == null|| username equals( )) {

  errors add(ActionErrors GLOBAL_MESSAGE

  new ActionError( loginform error username ));

  }

  if (userpass == null||userpass equals( )) {

  errors add(ActionErrors GLOBAL_MESSAGE

  new ActionError( loginform error password ));

  }

  return errors;

  }

  这个方法返回ActionErrors对象 如果返回的ActionErrors对象为null 或者不包含任何ActionMessage对象 就表示没有错误 数据验证通过 如果ActionErrors中包含ActionMessage对象 就表示发生了验证错误 此时就回把请求转发到你struts xml里面元素input属性指定的web资源

  new ActionError( loginform error username ) 取得资源文件里面的键值 用于页面的输出

lishixinzhi/Article/program/Java/ky/201311/29089

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式