SpringMVC-页面跳转方式
1.PrintWriter方式
/** * 使用PrintWriter直接输出到页面 * @param request * @param response * @throws Exception */ @RequestMapping("/choose1") public void choose1(HttpServletRequest request,HttpServletResponse response) throws Exception{ response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); writer.print("我要跳转..."); }
2.sendRedirect方式
/** * 根据sendRedirect方式跳转 * @param request * @param response * @return * @throws Exception */ @RequestMapping("/choose2") public String choose2(HttpServletRequest request,HttpServletResponse response,User user) throws Exception{ response.sendRedirect("show.jsp"); return null; }
3.forward方法
/** * 根据forward方式跳转 * @param request * @param response * @return * @throws Exception */ @RequestMapping(value="/choose3",method=RequestMethod.GET) public void choose3(User user,HttpServletRequest request, HttpServletResponse response){ try { request.getRequestDispatcher("to").forward(request, response); } catch (Exception e) { e.printStackTrace(); } }
4.使用视图解析
<!-- 配置JSP视图 --> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> <property name="contentType" value="text/html;charset=UTF-8"/> <property name="order" value="1"/> </bean>
@RequestMapping(value="/to",method={RequestMethod.POST,RequestMethod.GET}) public String to(@ModelAttribute("message") String msg,@ModelAttribute("too") String too){ System.out.println("-----------------------------"); System.out.println("message:"+msg); System.out.println("too:"+too); System.out.println("-----------------------------"); return "show"; }
当配置的有视图解析器时,如果Controller中返回的是一个普通的字符串,则跳转到/WEB-INF/jsp/show.jsp页面。
return "redirect:show" return "forward:show"
如果返回的字符串有"redirect"、"forward"时,将会忽略视图解析器,直接跳转到Controller中相应的请求方法中,而不是跳转到页面。