我最终创建了一个如下所示的CustomerMessageSource
,并将listAllAltLabels的结果放到视图中。然后,这是一个迭代的简单情况。
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;
}
}
我用弹簧的Webflow(隐藏了大部分控制器),但在控制器/动作基本上某处渲染页面之前,请拨打listAllAltLabels和分配结果“altLabelMessages”,并将其放入模型/视图。
然后在视图(JSP)
<c:forEach items="${altLabelMessages}" var="message">
<form:option value="${message.key}" label="${message.value}"/>
</c:forEach>
嗨对不起...我不知道你在哪里加载属性文件。你用不同的方法做了这个吗?感谢您分享这一点.... – 2017-03-20 09:00:29