视图控制器:为当前的请求直接设置视图名称实现页面跳转
若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404此时必须在配置一个标签: <mvc : annotation-driven />
return无任何前缀是Thymeleafview
InternalResourceview:return "forward:/mvx/test"
Redirectview视图:return "redirect:/mvx/test"
<a th:href="@{/mvx/test}"></a>
四选一:
通过ModelAndview向请求域共享数据:
使用ModelAndview时,可以使用其Model功能向请求域共享数据
使用view功能设置逻辑视图,但是控制器方法一定要将ModelAndvView作为方法的返回值
@RequestMapping("/mvx/test")
public String modelAndView() {
/**
*ModeLAndview包含ModeL和View的功能
* Model :向请求域中共享数据
* view:设置逻辑视图实现页面跳转
*/
ModelAndView mvx = new ModelAndView();
//向请求域共享数据
mvx.addObject("testRequestScope", "test");
//设置逻辑视图
mvx.setViewName("b");
return "mvx";
}
Model:
@RequestMapping("/mvx/test")
public String model(Model model){
model.addAttribute("testRequestScope", "test");
return "b";
}
ModelMap:
@RequestMapping("/mvx/test")
public String modelMap(ModelMap modelMap){
modelMap.addAttribute("testRequestScope", "test");
return "b";
}
map:
@RequestMapping("/mvx/test")
public String map(Map<String,Object> map){
map.put("testRequestScope", "test");
return "b";
}
应用层与会话层
@RequestMapping("/mvx/test")
public String session(HttpSession session){
session.setAttribute("testRequestScope", "test");
return "b";
}
@RequestMapping("/mvx/test")
public String application(HttpSession session){
ServletContext servletContext = session.getServletContext();
servletContext.setAttribute("testRequestScope", "test");
return "b";
}