struts2中使用generator標(biāo)簽取得resource bundle里的值
有如下的場(chǎng)景:
畫(huà)面上要求能顯示多國(guó)語(yǔ)言文字,有一個(gè)下拉框,存儲(chǔ)職位信息。
實(shí)現(xiàn)方法:
1.根據(jù)struts中對(duì)國(guó)際化的要求,創(chuàng)建多個(gè)資源文件,分別保存不同語(yǔ)言的職位信息;
比如在Action包下創(chuàng)建類級(jí)別的資源文件,XXXAction_en_US.properties,XXXAction_zh_CN.properties,etc,
中文(key.position.list=經(jīng)理,總管,技術(shù)人員)
英文(key.position.list=Manager,Director,Technician)
2.在jsp中利用generator標(biāo)簽取得資源文件里的職位信息,按照separator定義的分隔符解析取得數(shù)組對(duì)象;
3.再用s:select標(biāo)簽將該職位信息用下拉框的方式顯示出來(lái);
這樣,不用寫(xiě)一句java代碼,只需使用generator標(biāo)簽就能實(shí)現(xiàn)畫(huà)面下拉框的效果,且支持多國(guó)語(yǔ)言顯示,代碼非常簡(jiǎn)介。
標(biāo)簽使用的例子:
<s:generator id="positions" separator="," val="%{getText('key.position.list')}">
<s:select name="form.subscriber.position" list="positions" headerKey="-1" headerValue="%{getText('key.position.header')}" /
<s:fielderror fieldName="form.subscriber.position" />
</s:generator>
說(shuō)明:
generator里的id定義個(gè)名字用于在select中被引用,separator定義分隔符,val里用ognl取得資源文件里定義的職位信息;
select里的name值是在Action類里定義的屬性,用于接收畫(huà)面選中的職位,list值就是generator標(biāo)簽里的id,headerKey,headerValue分別定義下拉框的首選項(xiàng);
fielderror用于畫(huà)面上沒(méi)有選擇任一下拉框值時(shí)的錯(cuò)誤消息顯示;
注意:
s:select標(biāo)簽一定要出現(xiàn)在s:generator標(biāo)簽里。
posted on 2009-12-26 09:17 koradji 閱讀(1933) 評(píng)論(0) 編輯 收藏 所屬分類: Web Development