隨筆-61  評論-159  文章-0  trackbacks-0
                   在struts2中,一般的action都繼承ActionSupport這個類,可以重寫public void validate()來進行數(shù)據(jù)校驗,對應提示信息來說一般有兩個比較常用的方法就是this.addFieldError("field name","error message"); 和 this.addActionError("error message");兩個方法。
                   由于在ActionSupport這個類實現(xiàn)了ValidationAware接口,接口里面聲明了這兩個方法:
                  
          1public void addActionError(String anErrorMessage) {
          2        validationAware.addActionError(anErrorMessage);
          3    }

          4
          5    public void addActionMessage(String aMessage) {
          6        validationAware.addActionMessage(aMessage);
          7    }

          ValidationAwareSupport實現(xiàn)了ValidationAware接口,通過查看ValidationAwareSupport源碼中的兩個錯誤提示方法:
                  private Collection actionErrors;
                  private Map fieldErrors;

           1public synchronized void addFieldError(String fieldName, String errorMessage) {
           2        final Map errors = internalGetFieldErrors();
           3        List thisFieldErrors = (List) errors.get(fieldName);
           4
           5        if (thisFieldErrors == null{
           6            thisFieldErrors = new ArrayList();
           7            errors.put(fieldName, thisFieldErrors);
           8        }

           9
          10        thisFieldErrors.add(errorMessage);
          11    }

          1public synchronized void addActionError(String anErrorMessage) {
          2        internalGetActionErrors().add(anErrorMessage);
          3    }

          4


          注:由于fielderrors級別是Map類型,所以this.addFieldError("field name","error message"); ,而actionerror級別是Collection級別,所以this.addActionError("error message");

          在實際的項目開發(fā)應用中如果同時用到field和action錯誤級別的時候,在jsp頁面中的表單有用到struts2的標簽來實現(xiàn)的話,就有可能對于同一個表單,既有filed級別error提示又有action級別的error提示,這時,可以根據(jù)項目的實際需要來取舍,但是如果兩個都要同時存在的時候,只顯示action級別的error,而不顯示field級別的action,由于struts2標簽默認就是顯示field級別的error,所以要修改模板,加入theme="simple"即可,這時struts2表單那標簽默認的顯示field錯誤提示失效,使用這個模板的好處還可以和普通的html一樣隨便設計版面。例如:<s:form action="RegisterAction"theme="simple" >
          PS:要顯示action級別的錯誤提示,需要在jsp頁面中的表單里面加入<s:actionerror/>。

           



          -------------------------------------------------------------------------------------------------
          PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創(chuàng)。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
          posted on 2008-11-27 22:44 apple0668 閱讀(1862) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 安多县| 临湘市| 吴桥县| 东海县| 清涧县| 山东| 雷州市| 屯留县| 柏乡县| 尉氏县| 义乌市| 阿巴嘎旗| 务川| 白玉县| 开平市| 东港市| 嘉义市| 井研县| 双城市| 玛纳斯县| 浠水县| 孟村| 从化市| 三穗县| 浑源县| 宁都县| 乌恰县| 遵化市| 永嘉县| 伊川县| 什邡市| 西城区| 新宁县| 惠州市| 古浪县| 永济市| 高邑县| 灵武市| 大关县| 耒阳市| 滕州市|