隨筆-46  評論-64  文章-2  trackbacks-0
          在Struts中我們用html:errors標簽在JSP頁面上輸出驗證過程中產生的錯誤信息,錯誤信息一般來自于消息資源文件(xxx.properties文件,一般位于classes目錄下,文本文件),當然錯誤信息也可以是不是資源文件中的文本消息,而是自定義的文本。接下來將詳細講述。

            先來看一個簡單例子

          1、資源文件錯誤信息來源(其格式為 key = value )
          ???
          ?? error.test = this is a test error.

          2、JSP頁面中用于顯示錯誤信息標簽
          ??
          ?? <html:errors property="testerror"/>

          3、ActionFormBean的validate()方法中產生錯誤信息

          ?? ActionErrors error = new ActionErrors();

          ?? error.add("testerror",new ActionMessage("error.test"))
          ??
          ?? return error;

          ?

            這個例子的功能就是在ActionForm Bean的validate()方法中產生一條名為:testerror的錯誤信息,錯誤信息息是資源文件中key為error.test的值。然后在頁面上用html:errors標簽輸出testerror這條錯誤信息。

            這是最常用的一種功能,所有的錯誤信息都在資源文件里面。

            有人會問,錯誤信息只能存放在資源文件中嗎,其實不是這樣。不需要資源文件也可以產生錯誤信息。

            我們再來看一下ActionMessage的另一種構造方法:

            ActionMessage(String key,boolean isresource)

            如果isresource值為true,則表示key是資源文件中的key,產生的消息就是與key相對應的消息
            如果isresource值為false,則表示key為一條普通的消息。

            如果上面的error.add改為error.add("testerror",new ActonMessage("這是一條自定義消息",false",));那么頁面上顯示的將是:這是一條自定義消息.


            另外還可以用ActionMessage產生復合消息,比如我們要輸出:xxx不能用作用戶名,其中xxx是一個變量。

            首先我們在資源文件中加一個條復合消息

            testmsg = {0}不能用作用戶名。這里{0}是要被替換的參數。

            我們再來看一下ActionMessage的另一中構造方法
            ActionMessage(String key,Object value0);

            也就是說用value0的值來替換{0}

            我們修改error.add為error.add("testerror",new ActonMessage("testmsg","毛澤東"))

            那么JSP頁面上將顯示:毛澤東不能用作用戶名。


            當然在一條復合消息中也可帶多個參數,參數依次為{0},{1},{2}或更多
            例如:loginUser = 用戶名:{0} 姓名:{1} 登錄次數:{2}.....
            那么在產生錯誤消息時就用new ActionMessage(String key,Object value0,Object value1,Object? value2.....)或者使用對象數組new ActionMessage(String key,Object[] values)
            

            String[] detail = {"Admin","王晶","12"};
            error.add("testerror",new ActionMessage("loginUser",detail))


          Note:

          Cannot find message resources under key org.apache.struts.action.MESSAGE? 錯誤的原因是沒有配置資源文件

          解決辦法: 在struts-config.xml 中加入如下的一段

          <message-resources parameter="application" null="false"></message-resources>


          posted on 2008-01-14 22:20 jht 閱讀(1152) 評論(1)  編輯  收藏 所屬分類: Struts1

          評論:
          # re: [轉載]html:errors標簽與ActionMessage和Struts資源文件指南 2011-09-08 08:37 | tb
          恩 不錯啊   回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 灵山县| 安吉县| 商丘市| 岑溪市| 专栏| 饶阳县| 昌平区| 勐海县| 徐闻县| 珲春市| 长阳| 上林县| 芮城县| 蓬溪县| 高平市| 福安市| 饶河县| 道孚县| 七台河市| 茂名市| 夏河县| 门头沟区| 吴江市| 隆昌县| 隆德县| 威宁| 阿荣旗| 靖江市| 海城市| 天台县| 黑龙江省| 万载县| 新泰市| 乐清市| 南昌市| 赣榆县| 南投县| 陆丰市| 西青区| 东方市| 汉沽区|