【问题标题】:Wicket - monitor all validation errorsWicket - 监控所有验证错误
【发布时间】:2016-01-25 09:49:53
【问题描述】:

是否可以在一处监控 Wicket 中的所有表单/表单组件验证错误?有某种形式的听众吗?我想要页面、组件和错误消息。

感谢任何帮助

【问题讨论】:

  • 你能说得更具体点吗?你在使用嵌套形式的东西吗?
  • @Soora 你在问我的表单是否是我页面中的嵌套类吗?

标签: forms validation wicket


【解决方案1】:

你的问题很笼统。你想要达到什么目的?您是否正在寻找一些“管理员”功能来检查 Checked/RunTime 异常或任何类型的错误,包括简单的必填字段验证错误?

无论如何,您可以将错误消息保存到会话中,并让“管理”页面以某种表格形式显示所有报告的错误消息。但这些不可能是实时的,因为用户可能已经更正了该值。

您还可以创建自己的 ExceptionPage/Error Page 并捕获不同类型的运行时错误在 RequestCycle 级别进行捕获,然后在某处显示。

从设计的角度来看,每个页面/组件更容易将错误消息推送到会话存储中,然后使用 Session.get().getFeedbackMessages().iterator( ) 进行迭代。迭代时,您可以利用 FeedbackMessge 的布尔方法,如 isError()、isInfo() 等,用于 GUI 上的各种显示格式。

这里是来自 Wicket 的更多信息(查找 Overriding All Error Pages for RuntimeException 部分以获取与会话相关的 sn-p): https://cwiki.apache.org/confluence/display/WICKET/Error+Pages+and+Feedback+Messages

【讨论】:

    【解决方案2】:

    您可以在自定义IRequestCycleListener#onDetach() 中使用FeedbackCollector#collect()。这将返回您所有FeedbackMessages,而不是ValidationErrors,但它应该可以完成这项工作。如果反馈消息是从Component#error() 报告的,那么您可以通过#getReporter() 与它联系。

    【讨论】:

      猜你喜欢
      • 2020-02-14
      • 2011-03-10
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 2023-04-09
      • 2015-11-10
      相关资源
      最近更新 更多