0

例如,我有一个

enum State { OK, WARN, ERROR } 

和 amessage.properties具有以下键:

my.state.OK=Ok
my.state.WARN=Warning
my.state.ERROR=Error

并给定一个具有类型属性的bean State,例如,bean.state我想显示属性状态的文本。

就像是:

#{text['my.state.' + bean.state]}

这似乎是不可能的,因为该+运算符不适用于字符串。

有什么解决方法吗?

4

1 回答 1

1

向表示标签键的枚举添加一个额外的属性。

public enum State {

    OK, WARN, ERROR;

    private String labelKey;

    private State() {
        this.labelKey = "my.state." + name();
    }

    public String getLabelKey() {
        return labelKey;
    }

}

这样您就可以按如下方式引用它:

#{text[bean.state.labelKey]}

这样你就不需要<ui:param name="msgKey" value="my.state.#{bean.state}" />在所有地方重复。

也可以看看:

于 2012-11-28T15:17:53.710 回答