一、ModelAndView
上篇已经使用到就不再累述。
二、String
a、返回逻辑视图名
@RequestMapping("/queryBlog.action")
public String queryBlog(Model model){
List<Blog> blogs = new ArrayList<Blog>();
Blog blog1 = new Blog();
blog1.setId(1);
blog1.setTitle("springmvc");
blog1.setContent("适配器和映射器的使用");
blog1.setCreateTime(new Date());
blogs.add(blog1);
Blog blog2 = new Blog();
blog2.setId(2);
blog2.setTitle("springmvc");
blog2.setContent("适配器和映射器的使用");
blog2.setCreateTime(new Date());
blogs.add(blog2);
//将数据放到request域中
model.addAttribute("blogs", blogs);
return "blog/blogList";
}
b、redirect重定向到queryBlog.action
@RequestMapping("/updateBlog.action")
public String updateBlog(){
return "redirect:/queryBlog.action";
}
c、forward页面转发
@RequestMapping("/showBlog.action")
public String showBlog(){
return "forward:/queryBlog.action";
}
三、void
a、利用request请求转发
@RequestMapping("/showBlogList.action")
public void showBlogList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
List<Blog> blogs = new ArrayList<Blog>();
Blog blog1 = new Blog();
blog1.setId(1);
blog1.setTitle("springmvc");
blog1.setContent("适配器和映射器的使用");
blog1.setCreateTime(new Date());
blogs.add(blog1);
Blog blog2 = new Blog();
blog2.setId(2);
blog2.setTitle("springmvc");
blog2.setContent("适配器和映射器的使用");
blog2.setCreateTime(new Date());
blogs.add(blog2);
request.setAttribute("blogs",blogs);
request.getRequestDispatcher("/WEB-INF/blog/blogList.jsp").forward(request, response);
}
b、利用response重定向
@RequestMapping("/showBlogByResponse.action")
public void showBlogByResponse(HttpServletRequest request, HttpServletResponse response) throws IOException{
response.sendRedirect(request.getContextPath()+"/queryBlog.action");
}
c、利用response返回json类型
@RequestMapping("/showBlogByResponseReturnJson.action")
public void showBlogByResponseReturnJson(HttpServletRequest request, HttpServletResponse response) throws IOException{
response.setContentType("application/json;charset=utf-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("json基本类型");
}
四、小结
本博文介绍了springmvc的controller对象方法可能返回的三种形式,并对各种形式进行了举例说明。
如果有疑问或者对本博文有何看法或建议或有问题的,欢迎评论,恳请指正!