2010-12-13 3 views
5

я имею в свойствах файла несколько свойств, которые будут переведены на различные Языки:Динамические имена в Спринг интернационализации

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

Они значения списка так в JSP Я хочу, чтобы получить переведенное значение. Таким образом, у меня есть свойство, например, myVar, значения которого могут быть {var1, var2, var3}, и я хочу получить список сообщений. $ {MyVar} ".

Проблема в том, что в теге fmt: message ключевой атрибут не принимает выражения.

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

Каков наилучший способ для этого?

Спасибо.

ответ

3

Он должен работать так, как вы хотите: <fmt:message key="list.${myVar}"/>

Поскольку тег Lib определение Alowes этого ключа является выражение: 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> 
... 

А defently работал в мае приложения

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

Когда я использую сообщение fmt: message, он говорит, что TLD или атрибут директивы не принимают выражения в ключе аттрибута. Я должен использовать другой tld: <% @ taglib prefix = "fmt" uri = "http://java.sun.com/jstl/fmt"%> – Javi

+0

Журнал: Добавлен заголовок тега lib к описанию – Ralph

+0

Нервная весна : тег сообщения должен работать независимо – Ralph