springmvc学习笔记(八)json传递数据

来源:互联网 发布:怎么做图书marc数据 编辑:程序博客网 时间:2024/05/01 10:10

这节进行json传递数据的学习.

1.adduserView.jsp


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   <html>  <head>    <title>My JSP 'welcom.jsp' starting page</title>  </head>  <body><form action="">姓名:<input type="text" id="name" name="name"><br>年龄:<input type="text" id="age" name="age"><br><input type="button" id="subBtn" value="提交" ></form><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-2.1.4.min.js"></script><script type="text/javascript">$(document).ready(function(){$("#subBtn").click(function(){//不知道什么原因,我在看视频教程的时候,视频里的get方式会出现乱码的问题,在这里却没有出现.//是不是这里修改了Tomcat里的配置:URIEncoding="UTF-8"//或许是这里自定义了一个DispatcherServlet的原因//我把Tomcat下的URIEncoding删掉后测试,结果也出现了乱码,看来问题就出在这里//还有一个问题,以前我用jquery取value的时候用attr("value"),总取不到值,现在也是;//我用的是.val()方法,但视频教程里却不让这样取,//很困惑啊,attr取不到值啊.奇怪的是教程里却取得到var name = $("#name").val();var age = $("#age").val();var user = {name:name, age:age};$.ajax({url:"${pageContext.request.contextPath}/user/addUser",type:"get",data:user,dataType:"json",success:function(data){alert(data);//alert(data.name+"===="+data.age);//data = eval("("+data+")")alert(data.name+"===="+data.age);}});});});</script>  </body></html>

注意:jsp中的路径最好不要用相对路径,要使用绝对路径.


2.Controller类

package com.skymr.mvc.controller.annotation;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.skymr.mvc.entity.User;@Controller@RequestMapping("/user")public class UserController {@RequestMapping("/addUser")public String addUser(User user, HttpServletResponse response){System.out.println("name=" + user.getName());PrintWriter outer = null;//注意:user.getName是个字符串,需要加上引号,否则会出错String json = "{\"name\":\""+user.getName()+"\",\"age\":"+user.getAge()+"}";//设置返回结果为json格式//response.setContentType("application/json");//不加这行会出现乱码response.setCharacterEncoding("UTF-8");try {outer = response.getWriter();outer.write(json);} catch (IOException e) {e.printStackTrace();}finally{try{outer.flush();}catch(Exception e){}try{outer.close();}catch(Exception e){}}return null;}@RequestMapping("/toUser")public String toUser(HttpServletRequest request){request.setAttribute("result", "toUser-----");return "adduserView";}}

3,返回json格式数据方式

1).response.setContentType("application/json");   //教程里是这样做的.

2). ajax请求时加入参数 dataType:"json"

3)若返回的是字符串格式的json,可以eval一节,转换成json object

   data = eval("("+data+")")


0 0
原创粉丝点击