Java 当用户输入无效时,Wicket FilterToolbar不会使备份模型上的长值为空

Java 当用户输入无效时,Wicket FilterToolbar不会使备份模型上的长值为空,java,datatable,wicket,Java,Datatable,Wicket,我们正在wicket 1.5.5应用程序中为数据表使用FilterToolbar 当筛选工具栏的backing model属性为Long.class时,我们遇到了一个问题。如果用户输入有效的输入,比如“123”,那么一切都正常工作。发生以下步骤时会出现问题: 1) 用户输入有效输入(“123”),并通过提交表单进行筛选。 2) 用户输入无效输入(“abc”)并通过提交表单进行筛选 当用户在步骤2中提交表单时,backing models long字段仍将设置为123,而不是null,这将是所需的

我们正在wicket 1.5.5应用程序中为数据表使用FilterToolbar

当筛选工具栏的backing model属性为Long.class时,我们遇到了一个问题。如果用户输入有效的输入,比如“123”,那么一切都正常工作。发生以下步骤时会出现问题:

1) 用户输入有效输入(“123”),并通过提交表单进行筛选。
2) 用户输入无效输入(“abc”)并通过提交表单进行筛选

当用户在步骤2中提交表单时,backing models long字段仍将设置为123,而不是null,这将是所需的行为

这可能是wicket中的一个bug,还是我造成了这个问题

提前谢谢

奥利

这是wicket处理模型的方式。如果新输入无效,则不会更改它们。您应该能够通过在表单中实现一个将空值写入无效字段的
onError
方法来解决这个问题。如果输入包含无效值,则调用onError而不是Submit。

这是默认(和所需)行为。如果发生转换/验证错误,则不会更新/更改模型。除了@bert的评论之外,如果您希望有这种行为,您可能应该实现自己的行为,并在组件建模的
Long
字段中使用它。