0

私は例えば

enum State { OK, WARN, ERROR } 

およびmessage.properties次のキーを持つ a:

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

Stateたとえば、タイプのプロパティを持つ Bean が与えられた場合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 に答える