我最終創建了一個如下所示的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