在Spring Boot RequestMapping 方法中,"value=" 和"return new ModelAndView" 做什么?

In Spring Boot RequestMapping methods, what do "value=" and "return new ModelAndView" do?

在下面的代码中,

snapshot of @RequestMapping method

`// Get addLocation.jsp.
@RequestMapping(value="/add-location", method=RequestMethod.GET)
public ModelAndView addLocationJSP() {
    System.out.println("Location: LocationController.addLocationJSP()");
    return new ModelAndView("addLocation", "location", new Location());
}

// Submit addLocation.jsp form.
@RequestMapping(value="/submit-location", method=RequestMethod.POST)
public ModelAndView submitLocation(@ModelAttribute("location") Location location) {
    System.out.println("Location: LocationController.submitLocation()");
    locationService.saveLocation(location);
    return new ModelAndView("confirmSubmit");
}`

value=""@ModelAttribute()return new ModelAndView() 究竟做了什么?

value="add-location" 的作用与 @ModelAndView("addLocation") 的第一个参数有何不同?

  • @RequestMapping 注释用于将 URI 映射到控制器中的方法。这个标签需要的参数是"value",它代表你想要映射到方法的URI,以及方法,它代表请求的HTTP类型。当你想映射一个 GET 请求时,你可以省略参数,因为它是默认方法(所以,在你的第一个方法中你应该写: @RequestMapping("/add-location") )。当用户浏览您的网络应用程序到达 /add-location URI 时,将执行 addLocationJSP 方法。
  • @ModelAttribute 注释是将方法参数或方法 return 值绑定到命名模型属性的注释,暴露给 Web 视图。换句话说,您应该有一个 JSP 页面,其中包含一个带有 POST 方法的表单,用于填充 Location 对象。感谢 ModelAttribute,您可以在视图和控制器之间绑定对象,在 Location 对象中设置由表单输入收集的值。
  • @ModelAndView中你需要方法执行后要显示的视图名称;相反,在值参数中,您需要要拦截的 URI。

我认为你需要学习一些basic example(你可以找到很多其他教程,我只链接了其中一个)