0

我在这里有点震惊,想知道是否有任何方法可以减少开销。我面临的问题是我有一个 JSP 页面,其中包含用户 ID/密码文本文件和语言作为具有两种语言“EN”、“ES”的下拉框。

当我提供用户/密码并从下拉列表中选择“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 没有接受语言的更改,而是仍然以英语而不是西班牙语显示文本....

提前致谢。

4

1 回答 1

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 并使用它:

<%@ 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/

于 2013-10-18T06:49:04.297 回答