Wicket:如何将DropDownChoice与PropertyModel一起使用?

时间:2012-08-30 14:36:57

标签: java html wicket

我在使用DropDownChoice的PropertyModel时遇到了麻烦。每当DropdownChoice改变时,我都需要一些东西,它会比较价值并做一些事情。这就是我想要的:

实例化选项

private String typeSelected = DEFAULT_TYPE_VALUE;

List<String> typeSelectChoices = new ArrayList<String>();

typeSelectChoices.add(DEFAULT_TYPE_VALUE);
typeSelectChoices.add(TextFactory.TYPE_VALUE_1;
typeSelectChoices.add(TextFactory.TYPE_VALUE_2);

实例化DropDownChoice

typeSelect = new DropDownChoice<String>(TYPE_SELECT_ID, 
                    new PropertyModel(this, "typeSelected"), typeSelectChoices);

DropDownChoice onChange事件

typeSelect.add(new AjaxEventBehavior("onchange") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {

            System.out.println(typeSelected);
        }
    });

无论选择何种选项,它始终打印“选择”。我也尝试过:

System.out.println(typeSelect.getModel.getObject());

2 个答案:

答案 0 :(得分:1)

我不是这里的专家,但看起来你需要引用typeSelected的属性而不是typeSelected本身。所以应该是这样的:

System.out.println(typeSelected.value);

正如我所说,我不是专家所以我不确定.value是否是正确的属性,但你应该能够从这里找出答案。

祝你好运!


已更新

这适用于Javascript:

System.out.println(typeSelected.options[typeSelected.selectedIndex].value);

答案 1 :(得分:1)

您可以在DropDownChoice的wantOnSelectionChangedNotifications方法的javadoc中找到一些其他有用的信息。