1.spring contrallor类的方法通常有3种返回值:
1).String类型,默认的使用请求转发方式进行页面的跳转,如果要进行重定向需要使用redirect标记
@RequestMapping("/hello")
public String sayHello() {
logger.info("sayHello....");
return "hellosmvc";// 使用jsp页面的名称进行返回,默认是请求转发
}
@RequestMapping("/hello7")
public String sayHello7() throws IOException{
logger.info("sayHello7....");
//spring mvc默认的跳转方式是请求转发,本例使用servlet方式实现重定向功能
return "redirect:index.jsp";
}
//@ResponseBody返回指定的字符串
@RequestMapping("/hello9")
@ResponseBody
public String sayHello9() throws IOException {
logger.info("sayHello7....");
// spring mvc默认的跳转方式是请求转发,本例使用servlet方式实现重定向功能
return "{\"result\":success}";
}
::::::注意:请求转发使用页面的名称进行跳转,重定向使用全路径进行跳转
2).void类型:返回void类型一般有3中处理方法
a).直接返回内容
@RequestMapping("/hello5")
public void sayHello5(HttpServletResponse response) throws IOException {
response.setContentType("text/html; charset=UTF-8");
response.getWriter().append("使用reponse对象返回数据到浏览器或客户端");
response.getWriter().close();
}
b).使用servlet方式实现请求转发
@RequestMapping("/hello8")
public void sayHello8(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 使用servlet方式实现请求转发
request.getRequestDispatcher("index.jsp").forward(request, response);
}
c).使用servlet方式实现重定向
@RequestMapping("/hello6")
public void sayHello6(HttpServletResponse response) throws IOException {
logger.info("sayHello6....");
// spring mvc默认的跳转方式是请求转发,本例使用servlet方式实现重定向功能
response.sendRedirect("index.jsp");// 注意:重定向时,返回的地址是完整的url地址
}
3).ModelAndView类型:
@RequestMapping("hello2")
public ModelAndView sayHello2() {
logger.info("sayHello2....");
ModelAndView view = new ModelAndView();
view.setViewName("hellosmvc");// 使用jsp(模版)页面的名称进行返回
view.addObject("msg", "我来自sayHello2");// 返回ModelAndView时,如何传递数据到页面,默认的作用域是request
return view;
}