我正在使用Spring 3,Hibernate和JSP。我的用户实体的字段性别为Enum类型。当我在表单中显示此字段时,我希望将选项本地化。问题是:有没有办法让我的实体使用的所有枚举在显示时进行本地化?
答案 0 :(得分:6)
我们假设我们有以下枚举,我们需要将其本地化
package com.foo.enums;
public enum Color {
RED, GREEN, BLUE;
}
在消息文件(例如messages_de.properties)中,必须定义以下代码
colors.RED=rot
colors.GREEN=grün
colors.BLUE=blau
最后,jsp视图应该如下所示
<c:forEach items="${colors}" var="color">
<c:set value="colors.${color }" var="colorMessage" />
<spring:message code="${colorMessage }"/>
</c:forEach>
此外,您可以直接在枚举中定义消息代码,如下所示
package com.scriptico.blog.sw.enums;
public enum Color {
RED("colors.RED"), GREEN("colors.GREEN"), BLUE("colors.BLUE");
private String messageCode;
private Color(final String messageCode) {
this.messageCode = messageCode;
}
public String getMessageCode() {
return messageCode;
}
}
然后只在消息标记中使用messageCode
<c:forEach items="${colors}" var="color">
<spring:message code="${color.messageCode }"/>
</c:forEach>