1. 程式人生 > 程式設計 >Springmvc處理ajax請求並返回json資料

Springmvc處理ajax請求並返回json資料

①在springmvc方法上新增@ResponseBody註解,springmvc會將資料轉換成json並返回;

@ResponseBody //指定返回json資料,不跳轉頁面
  @RequestMapping("/list")
  public List<User> list(User user){
    System.out.println("獲取到非同步請求資料:"+user);
    //todo 根據條件做資料庫查詢,返回結果集合
    ArrayList<User> users=new ArrayList<>();
    users.add(new User(1,"james",18,"男"));
    users.add(new User(2,"姚明",40,"男"));
    users.add(new User(3,"科比",46,"男"));
    return users;
  }

list.jsp頁面中程式碼為:

<body>
  <input type="button" id="btn" value="非同步載入資料"/>
  <script src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
  <script>
    $(function ($) {
      $("#btn").click(function () {
        $.ajax({
          url:"${pageContext.request.contextPath}/list",type:"post",data:{"name":"james","age":18},dataType:"json",success:function (result) {
            alert("請求成功!")
            console.log(result)
          }
        })
      })
    })
  </script>
</body>

②如果contentType=”application/json”時,在方法的引數前新增@RequestBody註解,獲取傳遞的json字串,並封裝到物件中;

@ResponseBody //指定返回json資料,不跳轉頁面
  @RequestMapping("/list")
  public List<User> list(@RequestBody(required=false) User user){
    System.out.println("獲取到非同步請求資料:"+user);
    //todo 根據條件做資料庫查詢,返回結果集合
    ArrayList<User> users=new ArrayList<>();
    users.add(new User(1,"男"));
    return users;
  }

list.jsp頁面中程式碼為:

<body>
  <input type="button" id="btn" value="非同步載入資料"/>
  <script src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
  <script>
    $(function ($) {
      $("#btn").click(function () {
        var jsonObj={"name":"james","age":18};
        $.ajax({
          url:"${pageContext.request.contextPath}/list",data:JSON.stringify(jsonObj),//json字串 將json物件轉化為字串
          dataType:"json",contentType:"application/json",//指定以json方式傳輸資料
          success:function (result) {
            alert("請求成功!")
            console.log(result)
          }
        })
      })
    })
  </script>
</body>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。