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

时间:2019-02-24 00:50:30

标签: java spring rest spring-boot request-mapping

在以下代码中,

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")的第一个参数有何不同?

1 个答案:

答案 0 :(得分:0)

  • @RequestMapping批注用于将URI映射到控制器中的方法。此标记所需的参数是“值”(表示要与方法映射的URI)和“方法”(表示请求的HTTP类型)。当您要映射GET请求时,可以省略该参数,因为它是默认方法(因此,在第一个方法中,您应该编写:@RequestMapping(“ / add-location”))。当浏览您的Web应用程序的用户使用/ add-location URI时,将执行addLocationJSP方法。
  • @ModelAttribute注释是将方法参数或方法返回值绑定到已公开的Web视图的命名模型属性的注释。换句话说,您应该有一个JSP页面,其中包含一个带有POST方法的表单,用于填充Location对象。借助ModelAttribute,您可以在视图和控制器之间绑定对象,在Location对象中设置由表单输入收集的值。
  • @ModelAndView中,您需要执行该方法后要显示的视图的名称;相反,在value参数中,您需要要拦截的URI。

我认为您需要学习一些basic example(您可以找到许多其他教程,我只是其中之一)。