zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    apache安全—用户访问控制
    hdu 3232 Crossing Rivers 过河(数学期望)
    HDU 5418 Victor and World (可重复走的TSP问题,状压dp)
    UVA 11020 Efficient Solutions (BST,Splay树)
    UVA 11922 Permutation Transformer (Splay树)
    HYSBZ 1208 宠物收养所 (Splay树)
    HYSBZ 1503 郁闷的出纳员 (Splay树)
    HDU 5416 CRB and Tree (技巧)
    HDU 5414 CRB and String (字符串,模拟)
    HDU 5410 CRB and His Birthday (01背包,完全背包,混合)
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/11968498.html
Copyright © 2011-2022 走看看