SpringMVC之json数据传递

时间:2023-03-09 05:51:34
SpringMVC之json数据传递

json是一种常见的传递格式,是一种键值对应的格式。并且数据大小会比较小,方便传递。所以在开发中经常会用到json。

首先看一下json的格式:

{key1:value1,key2:value2}

每一个建对应一个值,每个键值对之间用逗号连接。并且最后一个键值对之后没有逗号,整体需要有大括号括起来。

SpringMVC的前台获取json代码:

annotationTest.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'annotationTest.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
<script type="text/javascript" src="/Spring6Annotation3/js/jquery-1.7.js"></script>
  </head>
  <script type="text/javascript">
 $(document).ready(function(){
  $("#submit").click(
   function(){
    var username = $("#username").attr("value");
    var userage = $("#userage").attr("value");
    var userJson={name:username,age:userage};//构造json数据
    
    $.ajax({
     url:"/Spring6Annotation3/user/data/showInfoJson",
     type:"post",
     data:userJson,
     success: function(data){
      alert("name===>"+data.username+"age"+data.userage);
     }//由此我们可以看出,jquary中的ajax也是json格式的
     
    });
   });
 });
  </script>
  <body>
  <h1>json</h1>
  <br/>
   <form action="">
    姓名:<input type="text" id="username" name="name"/>
    年龄:<input type="text" id="userage" name="age"/>
    <input type="button" id="submit" value="提交"/>
   </form>
  </body>
</html>
在controller中

@RequestMapping("/showInfoJson")
 public void showInfoJson(User user,HttpServletRequest request,HttpServletResponse response){
  String result = "{\"username\":\""+user.getName()+"\",\"userage\":\""+user.getAge()+"\"}";//user接到前台传到的数据,并拼接成新的json对象
  response.setContentType("application/json");//设置response的传输格式为json
  System.out.println(result);
  try {
   PrintWriter out = response.getWriter();
   out.write(result)//给页面上传输json对象
  } catch (IOException e) {
   e.printStackTrace();
  }
 }