gpt4 book ai didi

grails - Grails:Java POJO的国际化

转载 作者:行者123 更新时间:2023-12-02 14:31:14 25 4
gpt4 key购买 nike

我正在尝试从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

    关于grails - Grails:Java POJO的国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181258/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com