知识大全 Struts2中action和field级别错误处理

Posted

篇首语:积土而为山,积水而为海。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Struts2中action和field级别错误处理相关的知识,希望对你有一定的参考价值。

Struts2中action和field级别错误处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在struts 中 一般的action都继承ActionSupport这个类 可以重写public void validate()来进行数据校验 对应提示信息来说一般有两个比较常用的方法就是this addFieldError( field name error message ) 和 this addActionError( error message ) 两个方法

  由于在ActionSupport这个类实现了ValidationAware接口 接口里面声明了这两个方法

public void addActionError(String anErrorMessage)         validationAware addActionError(anErrorMessage);         public void addActionMessage(String aMessage)         validationAware addActionMessage(aMessage);    

  而ValidationAwareSupport实现了ValidationAware接口 通过查看ValidationAwareSupport源码中的两个错误提示方法

    private Collection actionErrors

    private Map fieldErrors

  public synchronized void addFieldError(String fieldName String errorMessage)           final Map errors = internalGetFieldErrors();          List thisFieldErrors = (List) errors get(fieldName);            if (thisFieldErrors == null)               thisFieldErrors = new ArrayList();              errors put(fieldName thisFieldErrors);                    thisFieldErrors add(errorMessage);    

public synchronized void addActionError(String anErrorMessage)         internalGetActionErrors() add(anErrorMessage);    

  注 由于fielderrors级别是Map类型 所以this addFieldError( field name error message ) 而actionerror级别是Collection级别 所以this addActionError( error message )

  在实际的项目开发应用中如果同时用到field和action错误级别的时候 在jsp页面中的表单有用到struts 的标签来实现的话 就有可能对于同一个表单 既有filed级别error提示又有action级别的error提示 这时 可以根据项目的实际需要来取舍 但是如果两个都要同时存在的时候 只显示action级别的error 而不显示field级别的action 由于struts 标签默认就是显示field级别的error 所以要修改模板 加入theme= simple 即可 这时struts 表单那标签默认的显示field错误提示失效 使用这个模板的好处还可以和普通的一样随便设计版面 例如 <s form action= RegisterAction theme= simple >

cha138/Article/program/Java/ky/201311/29109

相关参考