Java struts2对话和验证
我正在从事一个struts2项目,该项目具有相互依赖的形式。 我找到了struts2对话,跨过了他们的 并且理解到目前为止的对话机制(如果我有什么错误,请纠正我):Java struts2对话和验证,java,struts2,validation,bean-validation,conversation-scope,Java,Struts2,Validation,Bean Validation,Conversation Scope,我正在从事一个struts2项目,该项目具有相互依赖的形式。 我找到了struts2对话,跨过了他们的 并且理解到目前为止的对话机制(如果我有什么错误,请纠正我): 控制器映射到struts.xml中 它保存可序列化的ConversationContext和存储服务 ConversationContext保存通过命名约定映射到表单上的POJO 现在我的问题是把验证放在哪里 在这种结构中,控制器只是一个扩展ConversationSupport的控制器,因此ActionSupport提供了va
- 控制器映射到struts.xml中
- 它保存可序列化的ConversationContext和存储服务
- ConversationContext保存通过命名约定映射到表单上的POJO
马克的对话拦截器方法出现了,这是我没有真正得到的解决办法。也许你可以在这方面帮助我。如果你想在模型类上使用注释,它可以与插件配合使用(其他验证方法也是如此) 要验证模型,请将
@VisitorFieldValidator
添加到控制器中的getModel()
方法。在示例应用程序中,您还可以将@VisitorFieldValidator
添加到getContact()
和getPreferences()
方法中。然后可以在要验证的字段上使用
示例中的服务只是在Struts2控制器中使用注入服务的一个简单示例,以及如何轻松地与对话框架集成,但它不是直接相关或需要的(我建议在现实世界中使用Spring、Guice或CDI进行依赖项注入)
ConversationContext类主要用于框架的内部使用。通过使用注释和约定,您应该能够避免与它交互。除非你只是想冒险
要在示例应用程序中使用XML验证,您必须更改包名以删除“struts2”字,以便struts2资源加载工具加载XML。老问题,但我在任何JAR中都找不到FieldVisitorValidator@AlirezaFattahi我很抱歉,这似乎是一个打字错误。我应该用复制/粘贴!它应该是
@VisitorFieldValidator
。谢谢