gpt4 book ai didi

java - Spring 国际化中的动态名称

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:43 25 4
gpt4 key购买 nike

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

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}"/>

执行此操作的最佳方法是什么?

谢谢。

最佳答案

它应该按照您想要的方式工作:<fmt:message key="list.${myVar}"/>

因为标签库定义允许 key 是一个表达式: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>
...

在可能的应用程序中有效的是

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

关于java - Spring 国际化中的动态名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4427105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com