IT序号网

grails之Grails:Java POJO的国际化

emanlee 2025年12月25日 编程语言 38 0

我正在尝试从src/java/Gender.java类中定义的Java POJO中使用i18n国际化。

Gender类:

public enum Gender { 
 
  NONE(0), 
  MALE(1), 
  FEMALE(2); 
 
  private Integer code; 
 
  Gender(final Integer code) { 
    this.code = code; 
  } 
 
  Integer code() { 
    return code; 
  } 
 
} 

我正在尝试为枚举的每一项使用一些本地化的文本,类似这样( ,以下代码不起作用!):
public enum Gender { 
 
  NONE(0, message("gender.none")), 
  MALE(1, message("gender.male")), 
  FEMALE(2, message("gender.female")); 
 
  private Integer code; 
  private String text; 
 
  Gender(final Integer code, final String text) { 
    this.code = code; 
    this.text = text; 
  } 
 
  Integer code() { 
    return code; 
  } 
 
  Integer text() { 
    return text; 
  } 
 
} 

问题:
是否可以使用Java POJO中的 messageSource
我试图避免为性别创建表格。

我正在使用:
  • Grails 2.4.4

  • 谢谢!

    请您参考如下方法:

    您可以使用toString()方法和messageSource bean从enum获取messages.properties文本值,例如:

    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()); 
        } 
    } 
    
    messages.properties在哪里
    gender.none=None 
    gender.male=Male 
    gender.female=Female 
    


    评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!