【问题标题】:Dynamic names in Spring internationalizationSpring 国际化中的动态名称
【发布时间】:2011-05-24 13:10:43
【问题描述】:

我在属性文件中有几个属性要翻译成不同的语言:

list.var1=XXX
list.var2=XXX
list.var3=XXX

它们是列表的值,所以在 JSP 中我想获得翻译后的值。因此,我有一个名为 myVar 的属性,其值可以是 {var1, var2, var3},我想获取消息“list.${myVar}”。

问题是在 fmt:message 标签中,key 属性不接受表达式。

<%@ taglib prefix="fmt" uri="java.sun.com/jstl/fmt" %>
<fmt:message key="list.${myVar}"/>

最好的方法是什么?

谢谢。

【问题讨论】:

    标签: java spring spring-mvc internationalization


    【解决方案1】:

    它应该按照你想要的方式工作:&lt;fmt:message key="list.${myVar}"/&gt;

    因为标签库定义允许该键是一个表达式: fmt.tdl:

    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
    
      <description>JSTL 1.1 i18n-capable formatting library</description>
      <display-name>JSTL fmt</display-name>
      <tlib-version>1.1</tlib-version>
      <short-name>fmt</short-name>
      <uri>http://java.sun.com/jsp/jstl/fmt</uri>
    ...
    <tag>
        <description>
            Maps key to localized message and performs parametric replacement
        </description>
        <name>message</name>
        <tag-class>org.apache.taglibs.standard.tag.rt.fmt.MessageTag</tag-class>
        <body-content>JSP</body-content>
        <attribute>
            <description>
    Message key to be looked up.
            </description>
            <name>key</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    ...
    

    而在 5 月的应用中成功地发挥作用的是

    <%@ taglib prefix='spring' uri='http://www.springframework.org/tags'%>
    ...
    <spring:message code="myPrefix.${transaction.state}"/>
    

    【讨论】:

    • 当我使用 fmt:message 时,它​​说 TLD 或指令属性不接受属性键中的表达式。我必须使用另一个 tld:java.sun.com/jstl/fmt" %>
    • 日志:将标签库头添加到描述中
    • 你也可以使用允许EL的RT taglibs java.sun.com/jstl/fmt_rt" prefix="fmt" %>。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2017-12-12
    相关资源
    最近更新 更多