【问题标题】:Replacing BaseCommandController and SimpleFormController with annotated Controller in Spring 4在 Spring 4 中用带注释的 Controller 替换 BaseCommandController 和 SimpleFormController
【发布时间】:2017-04-20 17:30:30
【问题描述】:

我在哪里可以找到一些将 Spring Framework 控制器从版本 2 替换/迁移到版本 4 的示例?我的意思是迁移/替换 SimpleFormController 和 BaseCommandController 到带注释的控制器 @Controller。我是 Spring 框架的新手。 例如,我的旧控制器使用 onBind(HttpServletRequest request, Object command) 方法。如何使用新的 Spring 库迁移 onBind 和 onBindAndvalidate 等方法?

谢谢

【问题讨论】:

  • 我也在尝试用新的 Spring 4 库重构 SimpleFormController.isFormChangeRequest
  • 我猜你现在已经找到了解决方案。

标签: java spring spring-mvc controller


【解决方案1】:

我最近在做这个升级任务,我发现了一个非常有用的升级指南。

在此处发布,以便其他潜在开发人员进一步使用。

  1. SimpleFormController 与 @Controller 在基于 XML 的 Spring MVC Web 应用程序中,您可以通过扩展 SimpleFormController 类来创建表单控制器。 在基于注解的情况下,您可以改用@Controller

  2. formBackingObject() 与 RequestMethod.GET 在 SimpleFormController 中,您可以在 formBackingObject() 方法中初始化用于绑定的命令对象。在基于注解的情况下,您可以通过使用 @RequestMapping(method = RequestMethod.GET) 对方法名称进行注解来执行相同的操作。

  3. onSubmit() 与 RequestMethod.POST 在 SimpleFormController 中,表单提交由 onSubmit() 方法处理。在基于注解的情况下,您可以通过使用 @RequestMapping(method = RequestMethod.POST) 对方法名称进行注解来执行相同的操作。

  4. referenceData() 与 @ModelAttribute 在 SimpleFormController 中,通常通过 referenceData() 方法将参考数据放入模型中,以便表单视图可以访问它。在基于注解的情况下,您可以通过使用@ModelAttribute 对方法名称进行注解来执行相同的操作。

  5. initBinder() 与 @InitBinder 在 SimpleFormController 中,您可以通过 initBinder() 方法定义绑定或注册自定义属性编辑器。在基于注解的情况下,您可以通过使用@InitBinder 对方法名称进行注解来执行相同的操作。

  6. 来自验证 在 SimpleFormController 中,您必须通过 XML bean 配置文件注册验证器类并将其映射到控制器类,验证检查和工作流程将自动执行。 在基于注解的情况下,您必须显式执行验证器并手动在@Controller 类中定义验证流程。

您可以在Click Here查看示例实现截图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2021-09-03
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    相关资源
    最近更新 更多