我在 wicket 中有一个表单,它有两个按钮。我希望有人对我已经做过的字段进行验证(如果它们是否为空)。现在我希望第二个按钮不要进行此验证。我见过几个例子,人们使用 setDefaultFormProcessing()
方法,这是 wicket 中 Button 类的一个方法。
但是,当我使用此方法时,我的表单似乎也忽略了在表单字段中所做的更改。
知道我实际上如何能够绕过验证但仍然能够看到我的表单中的更改吗?
谢谢!!
最佳答案
这是定义的行为。如果数据无效,无论如何都不可能更新模型。考虑一个例子,当你有一个日期字段并且你在那里输入 '99/9/YYYYY' 这不是一个有效的日期,因此 wicket 没有机会绕过验证和更新模型。唯一的机会是将输入数据保留为 String 并为您提供一个选项,即如何通过您自己的实现来转换或更新模型。
如果您有对表单组件的引用,您可以调用 updateModel()。
参见 http://apache-wicket.1842946.n4.nabble.com/Turn-off-form-validation-td1877661.html
并检查 API 文档中的 FormComponent,它是所有字段和其他表单组件的基类。 https://ci.apache.org/projects/wicket/apidocs/7.x/org/apache/wicket/markup/html/form/FormComponent.html
关于java - 当 setDefaultFormProcessing(true) 时,wicket 表单更改不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511376/