有如下的場景:
畫面上要求能顯示多國語言文字,有一個下拉框,存儲職位信息。
實現方法:
1.根據struts中對國際化的要求,創建多個資源文件,分別保存不同語言的職位信息;
比如在Action包下創建類級別的資源文件,XXXAction_en_US.properties,XXXAction_zh_CN.properties,etc,
在每個資源文件中定義不同語言的職位信息:
中文(key.position.list=經理,總管,技術人員)
英文(key.position.list=Manager,Director,Technician)
2.在jsp中利用generator標簽取得資源文件里的職位信息,按照separator定義的分隔符解析取得數組對象;
3.再用s:select標簽將該職位信息用下拉框的方式顯示出來;
這樣,不用寫一句java代碼,只需使用generator標簽就能實現畫面下拉框的效果,且支持多國語言顯示,代碼非常簡介。
標簽使用的例子:
<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>
說明:
generator里的id定義個名字用于在select中被引用,separator定義分隔符,val里用ognl取得資源文件里定義的職位信息;
select里的name值是在Action類里定義的屬性,用于接收畫面選中的職位,list值就是generator標簽里的id,headerKey,headerValue分別定義下拉框的首選項;
fielderror用于畫面上沒有選擇任一下拉框值時的錯誤消息顯示;
注意:
s:select標簽一定要出現在s:generator標簽里。