我正在研究一个具有相互依赖形式的 struts2 项目。我找到了 struts2-conversation,逐步完成了他们的简单示例 并理解了到目前为止的对话机制(如果我有错误,请纠正我):
- Controller 映射在 struts.xml 中
- 它拥有可序列化的 ConversationContext 和 Storing-Service
- ConversationContext 保存通过命名约定映射到表单上的 POJO
现在我的问题是在哪里放置验证?
在这个结构中,控制器只是一个扩展 ConversationSupport 的控制器,因此 ActionSupport 提供了 validate、prepare 和 addField- & ActionError 方法。但是在控制器内验证意味着验证整个上下文,这并不能真正解决问题。
我尝试通过 POJO 中的注释进行验证,在如上所述的上下文中,这给了我一些 NullPointerException 好像上下文没有刷新,我认为 struts2 的 xml 验证方法太僵硬了。(顺便说一句,如何让生成的 javascript 在提供服务之前缩小?为什么有这么多选项?)
Mark 的对话拦截器方法也出现了类似的问题,这是我没有真正得到的解决方法。也许你可以在那里帮助我。