SpringMVC响应视图和结果视图详解

时间:2022-04-25 15:36:43

1、返回字符串,Model传输数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
     * 返回String
     * @param model
     * @return
     */
    @RequestMapping("/testString")
    public String testString(Model model){
        System.out.println("testString方法执行了...");
        // 模拟从数据库中查询出User对象
        User user = new User();
        user.setUsername("美美");
        user.setPassword("123");
        user.setAge(30);
        // model对象
        model.addAttribute("user",user);
        return "success";
    }

2、void(不经常使用)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
     * 是void
     * 请求转发一次请求,不用编写项目的名称
     */
    @RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("testVoid方法执行了...");
        // 编写请求转发的程序
        // request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
        // 重定向
        // response.sendRedirect(request.getContextPath()+"/index.jsp");
        // 设置中文乱码
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        // 直接会进行响应
        response.getWriter().print("你好");
        return;
    }

3、返回ModelAndView完成跳转页面和传输数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
    * 返回ModelAndView
    * @return
    */
   @RequestMapping("/testModelAndView")
   public ModelAndView testModelAndView(){
       // 创建ModelAndView对象
       ModelAndView mv = new ModelAndView();
       System.out.println("testModelAndView方法执行了...");
       // 模拟从数据库中查询出User对象
       User user = new User();
       user.setUsername("小凤");
       user.setPassword("456");
       user.setAge(30);
       // 把user对象存储到mv对象中,也会把user对象存入到request对象
       mv.addObject("user",user);
       // 跳转到哪个页面
       mv.setViewName("success");
       return mv;
   }

4、forward转发

?
1
2
3
4
5
6
7
8
9
10
/**
    * 使用关键字的方式进行转发
    * @return
    */
   @RequestMapping("/testForwardOrRedirect")
   public String testForwardOrRedirect(){
       System.out.println("testForwardOrRedirect方法执行了...");
       // 请求的转发
       return "forward:/WEB-INF/pages/success.jsp";
   }

5、redirect重定向

?
1
2
3
4
5
6
7
8
9
10
/**
     * 使用关键字重定向
     * @return
     */
    @RequestMapping("/testForwardOrRedirect")
    public String testForwardOrRedirect(){
        System.out.println("testForwardOrRedirect方法执行了...");
        // 重定向
        return "redirect:/index.jsp";
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_43888891/article/details/108743779