一直在玩这个几个小时,似乎无法让我的头靠近它。Wicket:避免将ListChoice的模型分配给表单的模型
在Wicket中,List Choice将列出将表示构成列表的选项的模型。当提交List Choice的表单被提交时,Wicket会将选择的模型绑定到Form的模型上。
但是如果我不希望整个模型被绑定,而是一个特定的属性呢?
例如:
public class FormModel {
private int locationId;
public void setLocationId(int id) {
this.locationId = id;
}
}
public class LocationModel {
private int id;
public int getId() {
return this.id;
}
}
<select wicket:id="LocationId" id="LocationId" name="LocationId" size="1">
<option value="#">#</option>
</select>
当提交表单时,检票将尝试绑定整个LocationModel到FormModel,其中清楚我只是想绑定它locationId财产。
我已经在使用ChoiceRenderer,但似乎只在表单呈现时才起作用。
结果是最终的类转换异常,因为Wicket无法将LocationModel转换为整数。
我不想创建另一个模型专门用于接受LocationModel的表单。
有什么想法?
只是为了确保我理解正确;你是说让列表选择一个整数列表,并在我的IChoiceRenderer里面,显示每个ID所代表的相关位置? – 9ee1 2012-03-23 14:33:11
确实。如果拉动描述是昂贵的,请参阅我的编辑以获取替代方案 – 2012-03-23 15:14:40
你的例子效果很好。感谢您的详细解答。 – 9ee1 2012-03-23 17:59:47