我正在试验 Wicket 和事件溯源。我正在尝试记录用户操作,以便我们可以重放它们或将它们用于测试或演示目的。
你会推荐什么策略?
例如,我可以定义动作类并将它们放在 onsubmit 等中。或者覆盖检票口的所有“动作”组件,例如链接、按钮、文本字段。等等。
有什么好的建议吗?
我正在试验 Wicket 和事件溯源。我正在尝试记录用户操作,以便我们可以重放它们或将它们用于测试或演示目的。
你会推荐什么策略?
例如,我可以定义动作类并将它们放在 onsubmit 等中。或者覆盖检票口的所有“动作”组件,例如链接、按钮、文本字段。等等。
有什么好的建议吗?
警告:这不是问题的解决方案。它可能仅适用于 ajax,但我也不确定。
您可以使用IComponentInstantiationListener来检查创建的新组件以及是否可点击。然后你可以附加一个日志行为。这样,您可以轻松地在一个地方打开和关闭您的日志记录,而不必为每个 Link-、Button 和 Whatnot-class 子类化来进行日志记录。
使用自 1.2 以来随 Wicket 一起提供的请求记录器(尽管多年来其实现发生了很大变化)。这以(在 6.0 中,请参阅 wicket-extensions)JSON 格式记录请求目标和响应以进行解析。请注意,根据用户数量,这可能会生成笨拙的日志。
Wicket 本身并没有为这样的事情提供挂钩,但根据您使用的其他技术,您可以在持久层中执行此操作 - 例如使用 JPA 的 @PreRemove、@PreUpdate、@PrePersist。另一种方法是面向方面的编程(AOP)。
考虑到每个用户操作都是一个 http 请求 ajax 或经典,您可以使用您需要的一些标识符记录每个请求(每个请求都有一个组件路径)。在 Wicket 1.4 中,您扩展了请求周期,在 1.5+ 中添加了请求周期侦听器。
见https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html