2013-10-17 135 views
0

我有點觸動在這裏,想知道是否有任何出路,少開銷。我面臨的問題是我有一個帶有用戶ID /密碼textfileds和語言的JSP頁面作爲帶有兩種語言「EN」,「ES」的下拉框。國際化與彈簧3

當我提供用戶/密碼並從下拉列表中選擇「ES」時,我會向@Controller方法執行POST操作,將值保存到該用戶的數據庫中。然後我加入改變了語言的模型對象

model.addAttribute("language", request.getParameter("language")); 

方法的返回類型爲String(下一個JSP頁面的名稱)。

期望的是下一個JSP頁面應該以西班牙文顯示。但它沒有發生。我在我的myapp-servlet.xml中定義的「LocaleChangeResolver」如下:

<bean id="localeChangeInterceptor" 
    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
    <property name="paramName" value="language" /> 
</bean> 

在我的JSP我已在tablib定義:

<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 

的標籤,我想從屬性文件讀取是

<spring:message code="label.formName"/> 

任何人都可以在這裏幫我,爲什麼語言的變化不是由JSP回升,而不是仍顯示在英語,而不是西班牙語文本....

在此先感謝。

回答

0

如果你希望你的程序用不同的語言「說話」,有幾件事情要做。

比如我在applicationContext.xml中進行以下配置:

<!-- Locale settings --> 
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
     <!-- My file with messages are: messages_en.properties (for English) and messages_lt.properties (for Lithuanian) --> 
     <property name="basename" value="classpath:messages"/> 
     <property name="defaultEncoding" value="UTF-8"/> 
    </bean> 

    <bean id="localeChangeInterceptor" 
      class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
     <property name="paramName" value="lang"/> 
    </bean> 

    <!-- I'm resolving my locale according to browser's Cookie --> 
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
     <property name="defaultLocale" value="lt"/> 
    </bean> 

在我來說,我有兩個文件:messages_lt.properties和messages_en.properties。在你的情況下,你需要創建名爲messages_en.properties(用於英語)和messages_es.properties(用於西班牙語)的文件。每個文件應包含:

# messages_en.properties 
label.formName=My form 

# messages_es.properties 
label.formName=Mi forma 

然後(如你所提到的),你需要在你的JSP頁面中添加標籤庫,並使用它:

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> 
<...> 
<spring:message code="label.formName"/> 

希望這有助於: )

編輯:在MKYONG.com漂亮的教程:http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/

+0

大家好,感謝您的回覆,可能我在提問時不太清楚。無論如何,我能得到這個工作我得到的解決方案是從鏈接http://stackoverflow.com/questions/12418645/i18-message-property-does-not-reflect-in-jsp-through-controller – BBBzone

+0

尼斯聽到這個:)祝你好運! :) –