我最终创建了一个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;
}
}
我使用spring webflow(隐藏大多数控制器),但基本上在渲染页面之前在控制器/动作的某个地方,调用listAllAltLabels并将结果分配给“altLabelMessages”并将其放入模型/视图中。
然后在视图中(jsp)
<c:forEach items="${altLabelMessages}" var="message">
<form:option value="${message.key}" label="${message.value}"/>
</c:forEach>