隨筆-46  評(píng)論-64  文章-2  trackbacks-0
          在Struts中我們用html:errors標(biāo)簽在JSP頁(yè)面上輸出驗(yàn)證過(guò)程中產(chǎn)生的錯(cuò)誤信息,錯(cuò)誤信息一般來(lái)自于消息資源文件(xxx.properties文件,一般位于classes目錄下,文本文件),當(dāng)然錯(cuò)誤信息也可以是不是資源文件中的文本消息,而是自定義的文本。接下來(lái)將詳細(xì)講述。

            先來(lái)看一個(gè)簡(jiǎn)單例子

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

          2、JSP頁(yè)面中用于顯示錯(cuò)誤信息標(biāo)簽
          ??
          ?? <html:errors property="testerror"/>

          3、ActionFormBean的validate()方法中產(chǎn)生錯(cuò)誤信息

          ?? ActionErrors error = new ActionErrors();

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

          ?

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

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

            有人會(huì)問(wèn),錯(cuò)誤信息只能存放在資源文件中嗎,其實(shí)不是這樣。不需要資源文件也可以產(chǎn)生錯(cuò)誤信息

            我們?cè)賮?lái)看一下ActionMessage的另一種構(gòu)造方法:

            ActionMessage(String key,boolean isresource)

            如果isresource值為true,則表示key是資源文件中的key,產(chǎn)生的消息就是與key相對(duì)應(yīng)的消息
            如果isresource值為false,則表示key為一條普通的消息。

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


            另外還可以用ActionMessage產(chǎn)生復(fù)合消息,比如我們要輸出:xxx不能用作用戶(hù)名,其中xxx是一個(gè)變量。

            首先我們?cè)谫Y源文件中加一個(gè)條復(fù)合消息

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

            我們?cè)賮?lái)看一下ActionMessage的另一中構(gòu)造方法
            ActionMessage(String key,Object value0);

            也就是說(shuō)用value0的值來(lái)替換{0}

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

            那么JSP頁(yè)面上將顯示:毛澤東不能用作用戶(hù)名。


            當(dāng)然在一條復(fù)合消息中也可帶多個(gè)參數(shù),參數(shù)依次為{0},{1},{2}或更多
            例如:loginUser = 用戶(hù)名:{0} 姓名:{1} 登錄次數(shù):{2}.....
            那么在產(chǎn)生錯(cuò)誤消息時(shí)就用new ActionMessage(String key,Object value0,Object value1,Object? value2.....)或者使用對(duì)象數(shù)組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? 錯(cuò)誤的原因是沒(méi)有配置資源文件

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

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


          posted on 2008-01-14 22:20 jht 閱讀(1159) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Struts1

          評(píng)論:
          # re: [轉(zhuǎn)載]html:errors標(biāo)簽與ActionMessage和Struts資源文件指南 2011-09-08 08:37 | tb
          恩 不錯(cuò)啊   回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长顺县| 江永县| 宜城市| 加查县| 通城县| 西峡县| 甘洛县| 象山县| 淮阳县| 营山县| 红原县| 兰坪| 麦盖提县| 荣成市| 钟山县| 泸溪县| 沅陵县| 麻城市| 虹口区| 隆尧县| 保德县| 措勤县| 安福县| 临漳县| 内黄县| 汉沽区| 蒙阴县| 韩城市| 东港市| 华宁县| 靖安县| 镇原县| 泰州市| 邵阳县| 镇坪县| 海安县| 临泉县| 黄冈市| 樟树市| 长宁区| 南皮县|