【问题标题】:Replace "Choose One" with another text programmatically以编程方式将“选择一个”替换为另一个文本
【发布时间】:2019-01-23 10:23:57
【问题描述】:

我需要以编程方式将DropDownChoice 中的“选择一个”文本替换为另一个文本。 (即,我无法按照here 的建议将替换文本放入 .properties 文件中。)我该如何实现?

为了提供一点上下文,我有一些看起来大致像这样的对象

FruitOption
    "No fruit chosen"
    Orange
    Banana

AnimalOption
    "No animal chosen"
    Dog
    Cat

并且 "No _____ chosen" 字符串是选项对象的一部分并从数据库加载。

我意识到我可以使用空对象模式,并在 ChoiceRenderer 中对空对象进行特殊处理,但我不希望这样做,因为选择对象属于抽象类型,不方便创建虚拟对象-对象。

【问题讨论】:

    标签: wicket dropdownchoice


    【解决方案1】:

    以下所有面向 NULL 的方法都声明在:AbstractSingleSelectChoice(参见 the online 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-09-17
      • 2012-02-05
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多