为什么行为停止使用autocompleteField中的propertyModel

时间:2014-03-11 22:26:15

标签: java wicket

在我的应用程序中,我有autocompleteTextField。当输入中的文本发生变化时,我需要获得播放器的ID。我正在尝试使用此问题推荐的模型:using AutoCompleteTextField in wicket without String as the generic type但没有成功。当我使用PropertyModel或设置类Player.class而不是null时,行为停止工作。我不明白为什么。

final AutoCompleteTextField<Player> playersField = new AutoCompleteTextField<Player>("players",
    new Model<Player>(selectedPlayer), null, new AbstractAutoCompleteRenderer<Player>() {

            @Override
            protected void renderChoice(Player player, Response response, String criteria) {
                response.write(getTextValue(player));
            }

            @Override
            protected String getTextValue(Player player) {
                return player.getName() + " " + player.getSurname() + " "
                        + player.getPlayerDiscriminator();
            }
        }
    , settings) {

    @Override
    protected Iterator<Player> getChoices(String prefix) {
        List<Player> choices = getPlayers();
        return choices.iterator();
    }   
};
add(playersField);
playersField.add(new AjaxFormComponentUpdatingBehavior("onchange") {

    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        System.out.println("do something");
        // All I need here is just Id of player
        }

    }
});

1 个答案:

答案 0 :(得分:1)

从您链接到的问题:

  

您可能已经知道这一点,但如果您的自定义类是自定义的,那么您还需要一个处理String&lt; - &gt; Someclass转换的IConverter:您可以将其注册到应用程序或覆盖组件的getConverter(Class clazz)返回它的方法。

你做到了吗?

此外,如果这不能解决问题,请详细说明它如何“停止工作”。