所以我在Wicket中有我的DropDownChoice:
final DropDownChoice drop_down_status = new DropDownChoice<String>("status", new PropertyModel<String>(this,"selected_status"), STATUS_LIST);
form.add(drop_down_status);
如何获取所选值?按下另一个按钮后我必须得到它并从中准备sql语句。
drop_down_status.getRawInput()和drop_down_status.getInput()返回null(至少在我的情况下)。
欢呼声
答案 0 :(得分:2)
由于您使用DropDownChoice
构建PropertyModel
,因此初始化期间显示的选项将与您的selected_status
变量的值相对应。更改drop_down_status
后,propety模型将更新selected_status
变量。因此,您应该只需查看该变量即可查看下拉列表中的当前选择。
我在过去从各种输入中获取值时感到沮丧,但是发现以下方法相当一致(选择一个):
Model
或PropertyModel
构建的,则可以调用drop_down_status.getModelObject()
,然后将返回的对象强制转换回正确的对象类型。使用AjaxFormComponentUpdatingBehavior的示例:
drop_down_status.add(new AjaxFormComponentUpdatingBehavior("onChange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
selected_status = (Status) getFormComponent().getConvertedInput();
}
}
为了重新审视上面提到的内容,模型是Wicket的核心(即MVC =模型,视图,控制器),并且非常有助于熟悉它们的使用。
答案 1 :(得分:0)
您将模型传递给DDC。在您的情况下是一个属性模型。成功提交后,该值将传输到模型对象“selected_value”。
如果你想随身携带Wicket。阅读模型的用法
答案 2 :(得分:0)
Wicket“动态”更新“selected_status”值。
new PropertyModel<String>(this,"selected_status")
所以它足以从Model值中获取值:)