3

プログラムで「Choose One」テキストDropDownChoiceを別のテキストに置き換える必要があります。(つまり、ここで提案されているように、置換テキストを .properties ファイルに入れることはできません。) どうすればこれを実現できますか?

少し文脈を与えるために、私はおおよそ次のように見えるオブジェクトを持っています

FruitOption
    "No fruit chosen"
    Orange
    Banana

AnimalOption
    "No animal chosen"
    Dog
    Cat

"No _____ chosen"文字列はオプションオブジェクトの一部であり、データベースからロードされます。

null オブジェクト パターンを使用して、ChoiceRenderer で null オブジェクトに特別な処理を与えることができることはわかっていますが、選択オブジェクトはダミー オブジェクトを作成するのに不便な抽象型であるため、使用しないことをお勧めします。

4

1 に答える 1

4

次の NULL 指向のメソッドはすべて、 で宣言されていますAbstractSingleSelectChoice(オンラインの JavaDoc を参照してください)。これは、 のスーパークラスですDropDownChoice。コンポーネントで関連するString値を定義したり、プロパティに基づいてフォーマットされたメッセージを使用したりできます。メソッドを確認して、それらがどのように機能するかを理解してから、実装例をニーズに合ったものに置き換えます。

/**
 * Returns the display value for the null value.
 * The default behavior is to look the value up by
 * using the key retrieved by calling: <code>getNullValidKey()</code>.
 *
 * @return The value to display for null
 */
protected String getNullValidDisplayValue() {
    String option = 
            getLocalizer().getStringIgnoreSettings(getNullValidKey(), this, null, null);
    if (Strings.isEmpty(option)) {
        option = getLocalizer().getString("nullValid", this, "");
    }
    return option;
}

/**
 * Return the localization key for the nullValid value
 * 
 * @return getId() + ".nullValid"
 */
protected String getNullValidKey() {
    return getId() + ".nullValid";
}

/**
 * Returns the display value if null is not valid but is selected.
 * The default behavior is to look the value up by using the key
 * retrieved by calling: <code>getNullKey()</code>.
 *
 * @return The value to display if null is not valid but is
 *     selected, e.g. "Choose One"
 */
protected String getNullKeyDisplayValue() {
    String option =
            getLocalizer().getStringIgnoreSettings(getNullKey(), this, null, null);

    if (Strings.isEmpty(option)) {
        option = getLocalizer().getString("null", this, CHOOSE_ONE);
    }
    return option;
}

/**
 * Return the localization key for null value
 * 
 * @return getId() + ".null"
 */
protected String getNullKey() {
    return getId() + ".null";
}
于 2015-02-07T19:53:08.707 に答える