• 4.学习springmvc的响应数据和结果视图


    一.返回值分类:

    1. 字符串:返回值为需要展示的视图
    2. void:返回为默认的页面(方法名.jsp)
    3. ModleAndView:存储对象并返回设置的页面

    1.字符串:

    jsp:

     1 <a href="/user/testString">response</a> 

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
     2 <html>
     3 <head>
     4     <title>success</title>
     5 </head>
     6 <body>
     7 <h3>执行成功</h3>
     8 
     9 ${user.username}
    10 ${user.age}
    11 </body>
    12 </html>

    控制器方法:

        /**
         * 返回值为需要展示的视图
         * @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

    jsp:

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 
     3 <html>
     4 <head>
     5     <title>response</title>
     6 </head>
     7 <body>
     8 
     9 <a href="/user/testString">testString</a>
    10 <a href="/user/testVoid">testVoid</a>
    11 </body>
    12 </html>

    方法:

     1     /**
     2      * void的返回值,会默认跳转到一个testVoid.jsp的页面下导致错误。
     3      * 我们可以使用
     4      * 1.请求转发:路径名为 "/WEB-INF/pages/success.jsp"
     5      * 2.重定向:路径名为 request.getContextPath()+"/index.jsp"
     6      * 注:
     7      *  forward:请求转发为服务器重定向,可以访问/WEB-INF中的jsp文件。
     8      *  redirect:客户端重定向,不可以访问/WEB-INF中的jsp文件,只能访问webapp中jsp
     9      * @param request
    10      * @param response
    11      * @throws Exception
    12      */
    13     @RequestMapping("/testVoid")
    14     public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
    15 
    16         System.out.println("testVoid执行了...");
    17 
    18         //请求转发:可以访问/WEB-INF中的jsp文件。
    19         //request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
    20 
    21         //重定向:不可以访问/WEB-INF中的jsp文件。
    22         response.sendRedirect(request.getContextPath() + "/index.jsp");
    23 
    24         //直接响应
    25         //response.setCharacterEncoding("UTF-8");
    26         //response.setContentType("text/html;charset=UTF-8");
    27 
    28         //response.getWriter().println("hello");
    29 
    30         return;
    31     }

    3.ModelAndView

    jsp

     1 <a href="/user/testModelAndView">testModelAndView</a> 

    方法:

     1     /**
     2      * 返回ModelAndView设置的页面
     3      * @return
     4      */
     5     @RequestMapping("/testModelAndView")
     6     public ModelAndView testModelAndView() {
     7 
     8         System.out.println("testModelAndView执行了...");
     9 
    10         //创建ModelAndView对象
    11         ModelAndView mv = new ModelAndView();
    12 
    13         User user = new User();
    14         user.setUsername("美美");
    15         user.setPassword("123");
    16         user.setAge(30);
    17 
    18         //将user放入ModelAndView对象中,同时也会将user对象放入request对象中
    19         mv.addObject("user", user);
    20 
    21         //设置跳转界面
    22         mv.setViewName("success");
    23 
    24         return mv;
    25     }

     二.使用关键字进行请求转发或重定向

    jsp:

    1 <a href="/user/testForwardOrRedirect">testForwardOrRedirect</a> <br>

    方法:

     1     /**
     2      * 使用关键字实现请求转发或重定向
     3      * @return
     4      */
     5     @RequestMapping("/testForwardOrRedirect")
     6     public String testForwardOrRedirect() {
     7 
     8         System.out.println("testForwardOrRedirect执行了...");
     9 
    10 
    11         // 请求转发
    12 //        return "forward:/WEB-INF/pages/success.jsp";
    13 
    14         // 重定向
    15         return "redirect:/index.jsp";
    16 
    17     }
  • 相关阅读:
    PyCharm不能使用Tab键进行整体向左缩进解决方法
    Python代码规范(PEP8)问题及解决
    Python学习开始
    Spring Annotation(@Autowire、@Qualifier)
    Spring自动装配
    servlet验证码
    Spring集合装配
    帐号明文传输漏洞
    java单元测试
    项目building workspace很慢,或者直接内存溢出的问题解决办法。
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/11968498.html
Copyright © 2020-2023  润新知