zoukankan      html  css  js  c++  java
  • Spring MVC响应数据方式

    • 返回值分类

      • String类型:是将控制器的相关的Sting类型的值在视图中展示。可以使用关键字跳转页面:forward或redirect关键字加上冒号页面完整路径地址

        <a href="user/selectById">查询用户</a>
        import org.springframework.ui.Model;
        ​
        @Controller
        @RequestMapping(value="user")
        public class UserController{
            @RequestMapping(value="selectById")
            public String selectById(Model model){
                User user = new User();
                user.setUsername("胡先森");
                user.setPassword("12345");
                model.addAttribute("user", user);
                return "user"
            }
        }
        <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
        <html>
        <head>
            <title>用户</title>
        </head>
        <body>
            <h3>用户界面</h3>
            <ul>
                <li>用户信息</li>
                <li>用户名称:${user.username}</li>
                <li>用户密码:${user.password}</li>
            </ul>
            <a href="back">返回</a>
        </body>
        </html>
      • void类型:jsp页面的地址需要写全

        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        ​
        @Controller
        @RequestMapping(value="user")
        public class UserController{
            @RequestMapping(value="back")
            public void back(HttpServletRequest request, HttpServletResponse response) throw Exception{
                //请求转发编程,像这样的话,一般只能使用一次,建议不使用
                //request.getRequestDispatcher("/index.jsp").forword(request, response);
                
                //重定向,这个就可以使用,
                //response.sendRedirect(request.getContextPath()+"/index.jsp");
                
                //以上两种都是返回页面,下面这种是直接作出反应
                //设置中文乱码
                response.setCharacterEncoding("UTF-8");
                response.setContentType("text/html;charset=UTF-8");
                response.getWriter().print("Hello World!");
            }
        }
      • ModelAndView类型:返回这种数据类型是和第一种方式的功能一样的

        import org.springframework.web.servlet.ModelAndView;
        @Controller
        @RequestMapping("user")
        public class UserController{
            @RequestMapping("selectById")
            public ModelAndView selectById(){
                ModelAndView modelAndView =  new ModelAndView();
                User user = new User();
                user.setUsername("胡先森");
                user.setPassword("12345");
                modelAndView.addObject("user", user);
                
                //设置即将要跳转的页面
                modelAndView.setViewName("user");
                return modelAndView;
            }
        }
    • 响应json数据

      • 过滤静态资源

        • 创建静态资源目录,一般是在webapp目录下创建js、css、images等目录

        • 导入前端传来的参数封装成JavaBean对象所需的依赖包

          <!-- 前端参数转换JavaBean的封装 -->
              <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.0</version>
              </dependency>
              <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.9.0</version>
              </dependency>
              <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.9.0</version>
              </dependency>
        • 在springmvc.xml配置文件配置前端控制器过滤静态资源

          <mvc:resources mapping="/js/**" location="/js/" />
        • 导入js文件,编写简单的ajax事件,像这种传值(前端的data)只能是以下的方式,才能前后台不报错

          <script src="js/jquery.min.js"></script>
          <script>
          $(function(){
              $("#btn").click(function(event){
                  event.preventDefault();
                  $.ajax({
                      url: "user/save",
                      type: "POST",
                      contentType: "application/json;charset=UTF-8",
                      dataType: "json",
                      data: '{"username":"胡先森", "password": "12345"}',
                      success: function(data){
                          console.log(data); //{"username":"胡先森", "password": "12345"}
                      }
                  })
              })
          })
          </script>
          <form action="" method="">
              <input type="text" name="username" />
              <input type="text" name="password" />
              <input id="btn" type="submit" value="提交" />
          </form>
        • 控制器的方法实现

          @RequestMapping("save")
          public @Response User save(@RequestBody User user){
              System.out.println(user); //User{"username":"胡先森", "password": "12345"}
              return user;
          }
  • 相关阅读:
    [718. 最长重复子数组]
    排序算法--归并,堆,快速排序
    改进的插排--希尔排序
    排序算法--选泡插
    对封装继承多态的理解
    Servlet[springmvc]的Servlet.init()引发异常
    [面试题 16.18. 模式匹配]
    [124. 二叉树中的最大路径和](
    7.29_python_lx_day11
    7.28_python_lx_day18
  • 原文地址:https://www.cnblogs.com/aitiknowledge/p/12796498.html
Copyright © 2011-2022 走看看