Struts 2 內建強大的國際化支援,透過資源屬性檔與標籤庫即可實現頁面多語言動態切換。本文以中英文雙語為例,完整演示配置流程與關鍵細節。
# 檔案位置:WEB-INF/src/struts.properties
struts.custom.i18n.resources=globalMessages
| 檔案名稱 | 編碼處理 | 內容範例 |
|---|---|---|
| globalMessages_en.properties | 原文保留 | firstname=firstname lastname=lastname age=age |
| globalMessages_zh.properties | native2ascii 轉 Unicode | firstname=\u59d3 lastname=\u540d age=\u5e74\u9f84 |
轉換命令:`%JAVA_HOME%\bin\native2ascii.exe globalMessages_zh.properties > globalMessages_zh.properties`
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<s:form action="login" method="post">
<s:textfield name="firstname" label="%{getText('firstname')}" />
<s:textfield name="lastname" label="%{getText('lastname')}" />
<s:textfield name="age" label="%{getText('age')}" />
<s:submit />
</s:form>
</html>
關鍵語法:`label="%{getText('key')}"` 透過 OGNL 呼叫 `ActionSupport.getText()` 取得當前 Locale 對應資源值。
<action name="login" class="com.example.LoginAction">
<result>/login.jsp</result>
</action>

修改 IE「網際網路選項 → 語言 → 依優先順序排列」,將 `zh-TW`/`zh-CN` 或 `en-US` 移至首位,重新整理頁面即可見標籤自動切換語言。