2015年6月17日 星期三

[Struts] 集中管理回應訊息!使用訊息資源檔 Messsage Resource Files

最近在寫api,錯誤訊息的回應尚未最終定案,寫死在程式碼中徒增修改麻煩,這時可使用struts2的訊息資源檔 Message Resource Files,統一集中管理api的回應訊息

  • 增加訊息檔global.properties
在java的source目錄中增加一global.properties檔,內容為key=value形式如下
  purpose=manage all messages in global resource file
  • 設定struts.xml
加入以下内容
  <constant name="struts.custom.i18n.resources" value="global">
  • 在action中取得訊息
因為要將訊息做為回應,而非在.jsp顯示,需使用getText(),其他overloading,請看第三篇參考文章
  this.getText("purpose"); //使用key取得value值
  • 訊息檔裡有特殊字元
如果是單引號',請用單引號跳脫;如果是反斜線\,請用反斜線跳脫;其他特殊字元請看第二篇參考文章
  purpose=use single quote to escape single quote ''
  purpose=use backslash to escape backslash \\

參考文章:
  1. 官網 Message Resource Files 這裡
  2. 官網 How to escape special chars in resource bundles 這裡
  3. 類別ActionSupport 這裡