gpt4 book ai didi

spring:message,如何获取key为 'beginning with'的所有消息

转载 作者:行者123 更新时间:2023-12-02 06:49:56 25 4
gpt4 key购买 nike

所以我的消息文件中有一堆消息,其键如下

alt.text1=Hello
alt.text2=Goodbye

在我的 JSP 中,我可以使用以下命令获取并显示这些内容

<spring:message code="alt.text1"/>
<spring:message code="alt.text2"/>

渲染为

Hello Goodbye

问题是,我如何获取所有 key 以“alt”开头的消息。 IE 我想一次显示所有“alt”消息,但不显示文件中不以 alt 开头的任何其他消息。

我知道消息是 JSP 中的 HashMap ,例如,我如何访问该映射以迭代其键和值?

最佳答案

我最终创建了一个 CustomerMessageSource 如下所示,并将 listAllAltLabels 的结果放置到 View 上。然后这是一个简单的迭代案例。

public class CustomMessageSource extends ReloadableResourceBundleMessageSource {

public Map<String, String> listAllAltLabels(String basename, Locale locale) {
Map<String, String> altLabels = new HashMap<String, String>();

PropertiesHolder propertiesHolder = getMergedProperties(locale);
Properties properties = propertiesHolder.getProperties();

for(Object key : properties.keySet()){
if(((String)key).startsWith("alt.")) {
altLabels.put((String)key, (String)properties.get(key));
}
}

return altLabels;
}

}

我使用spring webflow(隐藏大多数 Controller ),但基本上在渲染页面之前在 Controller /操作中的某个位置,调用listAllAltLabels并将结果分配给“altLabelMessages”并将其放入模型/ View 中。

然后在 View (jsp)中

<c:forEach items="${altLabelMessages}" var="message">
<form:option value="${message.key}" label="${message.value}"/>
</c:forEach>

关于spring:message,如何获取key为 'beginning with'的所有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966718/

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