java - 当 setDefaultFormProcessing(true) 时,wicket 表单更改不可见

标签 java forms button wicket

我在 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/

相关文章:

php - Symfony2,登录表单 - CSRF 保护

cocoa - 以编程方式向 NSWindow 添加关闭按钮

php - Codeigniter 表单打开如何删除 index.php

javascript - 联系表未与我的邮件服务器通信,怎么了?

Java 是否可以获取 jButton 的变量名称?

asp.net - ASP :Button Click event not being fired

java - 使用 Java 接收的消息更新 JSP(编写消息客户端)

java - Controller 方法持久化问题

java - 如何使用 Google Distance Matrix API 返回 "Km"中的距离?

java - 使用正则表达式从文本文件中查找搜索模式