gpt4 book ai didi

java - 使用带有参数的 EL

转载 作者:行者123 更新时间:2023-12-02 05:54:18 25 4
gpt4 key购买 nike

我们正在寻求外部化我们的 JSP,它当前包含如下内容:

<c:when test="${productObject.was}"><span>Was ${price} - now ${salePrice}</span><br /></c:when>

我们已经有了一个可以用于此目的的 Java 函数 (lm.getString) - 它接受英文字符串(包括参数标签)、替换变量的 HashMap 和语言,例如

wasPriceString = "Was <price> - now <salePrice>";
lang = "ESP";
HashMap hm = new HashMap();
hm.put("salePrice", price);
hm.put("price", regPrice);
wasPriceString = lm.getString(wasPriceString, hm, lang);

并返回翻译后的字符串,并插入参数,例如“以前 17.99 美元 - 现在 11.50 美元”(英语)或“era $17.99 - ahora $11.50”(西类牙语)。

我们在 Java 代码中使用了它,但现在我也想更改 JSP。我的问题是,这可以在 JSP 本身中轻松完成(传递参数)吗?如果没有,最好的选择是什么?我不想简单地翻译输出文本,因为这只是黑客行为,并会导致这种邪恶:

<c:when test="${productObject.was}"><span><fmt:message key="textWas_ui"/> ${price} - <fmt:message key="textNow_lc"/> ${salePrice}</span><br /></c:when>

我是否遗漏了一些明显的东西?

最佳答案

是的,您忽略了 <fmt:message> 的事实接受参数,并使用标准 MessageFormat幕后类(class)。所以你只需要

<fmt:message key="wasVsNow">
<fmt:param value="${price}"/>
<fmt:param value="${salePrice}"/>
</fmt:message>

在您的 JSP 中以及包含国际化消息的属性文件中:

wasVsNow=Was {0} - now {1}

关于java - 使用带有参数的 EL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253421/

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