java - 3.0 中的 Spring SimpleFormController

标签 java spring spring-mvc

我注意到这个 Controller 在最近的 Spring 已经被弃用了,我想知道替代 Controller 是什么?

最佳答案

在 Spring 3.0 中,您应该使用由 @Controller 注释的简单类。这样的 Controller 可以处理多个请求。每个请求都由自己的方法处理。这些方法由 @RequestMapping 注释。

您需要重新考虑的一个事实是,老式的 SimpleFormController 处理许多不同的请求(至少:一个是获取表单,另一个是提交表单)。您现在必须手动处理。但相信我,这更容易。

例如这个 REST 风格的 Controller ,将处理两个请求:

  • /book - POST:创建一本书
  • /book/form - GET:获取创建表单

Java 代码:

@RequestMapping("/book/**")
@Controller
public class BookController {

    @RequestMapping(value = "/book", method = RequestMethod.POST)
    public String create(
        @ModelAttribute("bookCommand") final BookCommand bookCommand) {

        Book book = createBookFromBookCommand(bookCommand);
        return "redirect:/book/" + book.getId();
    }

    @RequestMapping(value = "/book/form", method = RequestMethod.GET)
    public String createForm(final ModelMap modelMap) {
        modelMap.addAttribute("all", "what you need");
        return "book/create"; //book/create.jsp
    }
}

关于java - 3.0 中的 Spring SimpleFormController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734259/

相关文章:

java - 使用 Spring 引导在 Intellij 中实时加载 Assets

java - 静态初始化程序在 JUnit 测试期间不运行

java - Selenium:通过索引提取图像

java - 为什么当我递归调用函数时,它返回以前的值而不是新值?

c# - 识别在 Java 和 C# 中编译但运行不同的代码

java - 从 Spring MVC XML 文件移动到 javaconfig。我真的迷失了我的数据库 XML 文件

spring - Spring Initializr 生成的 pom.xml 出错

spring - 如何在Spring Expression Language(SpEL)中连接两个字符串

java - 无法加载测试上下文

java - 在 Spring Controller 中使用 Callable 和 WebApplicationInitializer 获取 IllegalStateException