控制器方法中的视图名称与Spring MVC中的@RequestMapping(值=“/…”)之间的关系
我是新来的春季MVC&穿越克雷格墙 以片段为例控制器方法中的视图名称与Spring MVC中的@RequestMapping(值=“/…”)之间的关系,spring,spring-mvc,Spring,Spring Mvc,我是新来的春季MVC&穿越克雷格墙 以片段为例 @RequestMapping(value = "/spittles", method = RequestMethod.GET) public String spittles(Model model, @RequestParam("max") long max, @RequestParam("count") int count) { model.addAttribute
@RequestMapping(value = "/spittles", method = RequestMethod.GET)
public String spittles(Model model, @RequestParam("max") long max,
@RequestParam("count") int count) {
model.addAttribute("spittleList",spittleRepository.findSpittles(max, count));
return "spittles"; // <-- return view name
}
1)为什么我需要在控制器方法中返回字符串“spittles”
2)doit(返回字符串)与
@RequestMapping(value=“/spittles”,method=RequestMethod.GET)
值(/Spitles)是否与控制器方法中返回的字符串相同
3)当我输入URL时,为什么不看到一个.jsp扩展名
而o/p解析为:关于您的问题:
/WEB-INF/views/splittles.jsp
。如果返回“hello\u world”,则需要一个视图/WEB-INF/views/hello\u world.jsp
/my/super/vality/URL
——这正是您接受(GET)请求的路径@RequestMapping(value = "/spittles", method = RequestMethod.GET)
public String spittles(Model model, @RequestParam("max") long max,
@RequestParam("count") int count) {
// ...
return "splittles_get";
}
@RequestMapping(value = "/spittles", method = RequestMethod.POST)
public String spittles(Model model, @RequestParam("max") long max,
@RequestParam("count") int count) {
// ...
return "splittles_post";
}
您甚至可以返回一个相对路径,如
splittles/jspName
,这意味着您可以将jsp组织在文件夹中-这里是/WEB-INF/views/splittles/something.jsp
,这一切都与MVC中视图解析器的工作方式有关。ad 1)它是应该显示给用户的视图(jsp页面)的名称。ad 2)否。URL映射与视图解析没有直接关系。AD3)在MVC中,您只能看到视图的名称(JSP是唯一的表示层,您可以使用Thymeleaf而不是JSP,它将以非常类似的方式工作)@R4J:但是如果我只是从controller方法返回null,它也可以工作。是的,即使您返回null,它也可以工作,因为视图解析器InternalResourceViewResolver通过为jsp添加前缀/后缀来解析呈现@controller的视图。如果该JSP存在,那么它将呈现else,并显示“未找到JSP”错误。
@RequestMapping(value = "/spittles", method = RequestMethod.GET)
public String spittles(Model model, @RequestParam("max") long max,
@RequestParam("count") int count) {
// ...
return "splittles_get";
}
@RequestMapping(value = "/spittles", method = RequestMethod.POST)
public String spittles(Model model, @RequestParam("max") long max,
@RequestParam("count") int count) {
// ...
return "splittles_post";
}