@RequestMapping注解方法的返回值类型
- void类型
使用SpringMVC框架默认支持的参数request和response来完成响应。
①使用Request实现请求转发
@RequestMapping("指定路径")
public void VoidDemo01(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
//获得转发器 执行转发
request.getRequestDispatcher("指定完整路径").forward(request, response);
}
②使用Response重定向
@RequestMapping("指定路径")
public void VoidDemo02(HttpServletRequest request,HttpServletResponse response) throws IOException {
response.sendRedirect("指定完整路径");
}
③使用Response做出响应结果(JSON、AJAX请求等)
@RequestMapping("指定路径")
public void VoidDemo03(HttpServletRequest request,HttpServletResponse response) throws IOException {
//响应数据
PrintWriter out=response.getWriter();//使用内置的Writer对象
out.write("This is response!");
out.close();
}
- ModelAndView类型
在添加有@RequestMapping注解的方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view视图。
@RequestMapping("指定路径")
public ModelAndView ModelAndViewDemo01(){
ModelAndView modelAndView = new ModelAndView("指定视图名");
model.addAttribute("属性名",属性对应的对象);
return modelAndView;
}
- String类型
@RequestMapping("指定路径")
public String StringDemo01(){
//这里有三种返回方式
①返回逻辑视图名
return "视图名";//字符串指定逻辑视图名,通过视图解析器解析为物理视图地址。其实相当于返回了new ModelAndView("视图名");
②请求转发至逻辑视图
return "forword:页面完整路径";
③重定向至逻辑视图
return "redirect:页面完整路径";
}
以前都是按部就班的跟着视频学的,在总结的时候我突然想到如果返回值为其他类型会怎么样,这里不考虑使用@ResponseBody注解,就是单纯的只返回一个类类型,今天太晚了,避免秃头早睡早起,明天再把这部分测试内容补充到评论区吧。