Grails:来自javapojo的国际化
我正试图使用我在Grails:来自javapojo的国际化,grails,internationalization,Grails,Internationalization,我正试图使用我在src/Java/Gender.Java类中定义的JavaPOJO中的i18n国际化 性别班级: public enum Gender { NONE(0), MALE(1), FEMALE(2); private Integer code; Gender(final Integer code) { this.code = code; } Integer code() { return code; } } 我正在尝试为每个
src/Java/Gender.Java
类中定义的JavaPOJO中的i18n国际化
性别
班级:
public enum Gender {
NONE(0),
MALE(1),
FEMALE(2);
private Integer code;
Gender(final Integer code) {
this.code = code;
}
Integer code() {
return code;
}
}
我正在尝试为每个枚举项使用一些本地化文本,类似这样(以下代码不起作用!):
问题:
是否可以从Java POJO使用messageSource
?
我试图避免为性别问题创建表格
我正在使用:
public enum Gender {
NONE(0),
MALE(1),
FEMALE(2);
private Integer code;
Gender(final Integer code) {
this.code = code;
}
Integer code() {
return code;
}
}
- Grails2.4.4
toString()
方法和messageSource
bean从消息中获取enum
文本值。属性
,如:
import grails.util.Holders;
import org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequest;
import org.codehaus.groovy.grails.web.util.WebUtils;
import org.springframework.context.MessageSource;
public enum Gender {
NONE(0, "none"),
MALE(1, "male"),
FEMALE(2, "female");
MessageSource messageSource = (MessageSource) Holders.getApplicationContext().getBean("messageSource");
private Integer code;
private String text;
Gender(final Integer code, final String text) {
this.code = code;
this.text = text;
}
Integer code() {
return code;
}
String text() {
return text;
}
@Override
public String toString() {
GrailsWebRequest webUtils = WebUtils.retrieveGrailsWebRequest();
return messageSource.getMessage("gender." + text, null, "default", webUtils.getLocale());
}
}
其中消息。属性
具有
gender.none=None
gender.male=Male
gender.female=Female