我在使用struts2和瓷磚的web應用程序中使用國際化。它適用於在messages_en.properties和messages.properties中定義的消息。我面臨的問題與我的網頁標題有關。我已經設置了兩個tile定義文件,一個用於法語tiles-defs.xml,另一個用於英文tiles-defs_en.xml。在我所有的行動中,我已經把i18n攔截器。但是當我要求改變語言時,我的標題不會改變。有人開始解決問題嗎?瓷磚國際化
非常感謝
這是我的鏈接到我的區域行動:
<s:url var="urlfr" action="locale">
<s:param name="request_locale">fr</s:param>
</s:url>
<s:a href="%{urlfr}">
<img title="francais" alt=""
src="/baseline/pages/images/flag-fr.gif">
</s:a>
<s:url var="urlen" action="locale">
<s:param name="request_locale">en</s:param>
</s:url>
<s:a href="%{urlen}">
<img title="englais" alt="" src="/baseline/pages/images/flag-gb.gif">
</s:a>
我的語言環境行動只返回成功,這是我的struts.xml中,我宣佈我的行動
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="messages" />
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.SlashesInActionNames" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<interceptors>
<interceptor name="post" class="domain.PostOnlyInterceptor" />
<interceptor-stack name="postStack">
<interceptor-ref name="i18n" />
<interceptor-ref name="post" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<action name="listPaysAction" class="regionAction" method="listePaysParRegion">
<interceptor-ref name="params" />
<interceptor-ref name="prepare" />
<interceptor-ref name="defaultStack" />
<result name="success" type="tiles">accueil</result>
</action>
</package>
</struts>
顯示代碼。這真的不應該是瓷磚問題,它只是組裝視圖。如果視圖沒有正確執行i18n,它應該是一個struts2/jsp問題。也看不到法國/英國瓷磚的需要。可以看到支持具有不同佈局流程的語言的瓷磚的可能原因,但這些都是從左到右...... – Quaternion