WebWork2.2新特性(三)簡單頁面使用ww:text進行國際化
除經特別注明外,本站文章版權歸JScud Develop團隊或其原作者所有.
轉載請注明作者和來源. scud(飛云小俠) 歡迎訪問 JScud Develop
這個特性應該說這是一個副產品.是我最近突然想到這個想法,然后試用webwork 2.2,發現可以做到,而webwork 2.1.7是做不到的.
名詞定義:
簡單頁面:不通過action訪問,直接訪問文件的url.例如直接訪問的jsp,或者直接訪問的ftl.
需求想法:
在一個網站中,有很多頁面,其中很多頁面僅僅是簡單的頁面,沒有程序處理等.不過為了國際化,這些頁面就需要進行i18n的工作.
1.按照正常的想法,應該是每個頁面都要寫一個action,然后結果定義為這個頁面,通過訪問action來對頁面進行國際化.或者是寫一個action,根據參數的不同,轉向目標頁面.
或者要定義很多action或者很多參數 或者用一個程序帶不同的參數來訪問. 總之是麻煩,不直觀.
2.實現自己的一個tag來裝載國際化信息.這樣很簡單.不過只能用在jsp里. 如果想使用freemarker的話,通過一些簡單處理,也可以使用這個功能.
這個思路很簡單,可以不依賴任何其他組件.
3.WebWork 2.1.7
如果是在Jsp中,可以通過
<ww:i18n name="message"> <ww:text name="name"/> </ww:i18n> |
來實現簡單頁面的國際化. 無法在freemarker的簡單頁面中直接使用. (可以在action的結果頁面中使用)
4.WebWork 2.2 Beta (在最后發布的版本中,可能會有變化!!!)
在簡單頁面Jsp中,可以直接使用ww:text,例如
<ww:text name="name"/> |
(注意:在webwork.properties中需要包含資源文件 webwork.custom.i18n.resources=message ,如果有多個,就用逗號分割)
在FreeMarker的簡單文件中,也可以直接使用ww:text.
<@ww.text name="name"/> |
<servlet> <servlet-name>freemarker</servlet-name> <servlet-class>com.opensymphony.webwork.views. freemarker.FreemarkerServlet</servlet-class> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping> <servlet-name>freemarker</servlet-name> <url-pattern>*.ftl</url-pattern> </servlet-mapping> |
警告:如果你不使用FreeMarker的簡單頁面,不需要配置這個Servlet,即使使用freemarker的ftl頁面來做action的結果頁面,也不需要配置這個Servlet,使用webwork的freemarker結果即可,具體請瀏覽webwork的Result Type的文檔.
posted on 2005-08-30 15:03 Scud(飛云小俠) 閱讀(2472) 評論(4) 編輯 收藏 所屬分類: WEB