Spring mvc结果跳转方法详解

网友投稿 353 2023-06-18

Spring mvc结果跳转方法详解

Spring mvc结果跳转方法详解

ModelAndView

设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .

页面 : {视图解析器前缀} + viewName +{视图解析器后缀}

id="internalResourceViewResolver">

id="internalResourceViewResolver">

对应的controller类

public class ControllerTest1 implements Controller {

public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

//返回一个模型视图对象

ModelAndView mv = new ModelAndView();

mv.addObject("msg","ControllerTest1");

mv.setViewName("test");

return mv;

}

}

ServletAPI

通过设置ServletAPI , 不需要视图解析器 .

通过HttpServletResponse进行输出

通过HttpServletResponse实现重定向

通过HttpServletResponse实现转发

@Controller

public class ResultGo {

@RequestMapping("/result/t1")

public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {

rsp.getWriter().println("Hello,Spring BY servlet API");

}

@RequestMapping("/result/t2")

public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {

rsp.sendRedirect("/index.jsp");

}

@RequestMapping("/result/t3")

public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {

//转发

req.setAttribute("msg","/result/t3");

req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp);

}

}

SpringMVC

通过SpringMVC来实现转发和重定向 - 无需视图解析器;

测试前,需要将视图解析器注释掉

@Controller

public class ResultSpringMVC {

@RequestMapping("/rsm/t1")

public String test1(){

//转发

return "/index.jsp";

}

@RequestMapping("/rsm/t2")

public String test2(){

//转发二

return "forward:/index.jsp";

}

@RequestMapping("/rsm/t3")

public String test3(){

//重定向

return "redirect:/index.jsp";

}

}

通过SpringMVC来实现转发和重定向 - 有视图解析器;

重定向 , 不需要视图解析器 , 本质就是重新请求一个新地方嘛 , 所以注意路径问题.

可以重定向到另外一个请求实现

@Controller

public clauAajOhzynuss ResultSpringMVC2 {

@RequestMapping("/rsm2/t1")

public String test1(){

//转发

return "test";

}

@RequestMapping("/rsm2/t2")

public String test2(){

//重定向

return "redirect:/index.jsp";

//return "redirect:hello.do"; //hello.do为另一个请求/

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring mvc如何实现数据处理
下一篇:Spring mvc Controller和RestFul原理解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~