我在使用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());
答案 0 :(得分:1)
我不是这里的专家,但看起来你需要引用typeSelected的属性而不是typeSelected本身。所以应该是这样的:
System.out.println(typeSelected.value);
正如我所说,我不是专家所以我不确定.value
是否是正确的属性,但你应该能够从这里找出答案。
已更新
这适用于Javascript:
System.out.println(typeSelected.options[typeSelected.selectedIndex].value);
答案 1 :(得分:1)
您可以在DropDownChoice的wantOnSelectionChangedNotifications方法的javadoc中找到一些其他有用的信息。