使用Spring RESTful服务接收和返回JSON最佳实践

首先要导入相应的架包



   com.fasterxml.jackson.core
   jackson-databind
   2.8.7




   com.fasterxml.jackson.core
   jackson-core
   2.8.7




   com.fasterxml.jackson.core
   jackson-annotations
   2.8.7

然后再



以下为前端的相关ajax请求

function sendNews()
{
var url="${pageContext.request.contextPath}/NewsAction/addNews";
var title = "title="+$('#title').val();
var author = "author="+$('#author').val();
var content = "content="+UE.getEditor('container').getContent();

var dataText = title+"&"+author+"&"+content;
alert("dataText:   "+dataText);
$.ajax({
url:url,

dataType:"text",  /* 后端  返回值类型 为  String 时  此处 必须指定  dataType 为 text */ 
data:dataText,

type:"post",
success:function(rspText)
{
alert("哈哈哈哈");
alert("rspText:  "+rspText);
}
});
}

以下为具体的实现类


@RequestMapping(value="addNews",produces="application/json;charset=utf-8")
@ResponseBody
public News   addNews(News news)
{  
System.out.println("--------- 添加  news ---------");
news.setId(UUID.randomUUID().toString());
news.setNewsdate(new Date().toString());
String newsStr = "";
try
{
newsStr = new ObjectMapper().writeValueAsString(news);
System.out.println("newsStr:\t"+newsStr);
}
catch (JsonProcessingException e) {
e.printStackTrace();
}
String a = "{'id':'fae9acde-2808-4153-ae50-c15f7b7b94b6','title':null,'content':null,'newsdate':'Tue Apr 11 12:20:39 CST 2017','author':null}";;

return news;

}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

一、实验环境的搭建

1、Spring mvc jar。

导入spring mvc运行所需jar包。导入如下(有多余)

 使用Spring RESTful服务接收和返回JSON最佳实践_第1张图片

 

2、json的支持jar

 

 

 

3、加入jQuery。

选用jquery-3.0.0.min.js,放在WebRoot/JS文件夹

 

 

导入jQuery到jsp页面如下

 

 

 

4、web.xml

  springmvcjson

 

  springmvc

  org.springframework.web.servlet.DispatcherServlet

 

  contextConfigLocation

  classpath:springmvc.xml

 

  1

 

 

 

  springmvc

  *.action

 

 

 

    index.html

    index.htm

    index.jsp

    default.html

    default.htm

    default.jsp

 

 

5、springmvc.xml

classpath下

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

         xmlns:context="http://www.springframework.org/schema/context"

         xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

         xsi:schemaLocation="http://www.springframework.org/schema/beans

                   http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

                   http://www.springframework.org/schema/mvc

                   http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd

                   http://www.springframework.org/schema/context

                   http://www.springframework.org/schema/context/spring-context-3.2.xsd

                   http://www.springframework.org/schema/aop

                   http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

                   http://www.springframework.org/schema/tx

                   http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

        

        

        

        

        

        

        

        

        

  

  

        

        

        

        

          

        

 

 

二、实验例子编写

 

1、请求和返回都是JSON

a).程序发起

index.jsp的一个按钮

 

 

 

b).js函数

 使用Spring RESTful服务接收和返回JSON最佳实践_第2张图片

 

function requestByJson() {

         $.ajax({

                   type : 'post',

                   url : '${pageContext.request.contextPath}/jsonsource.action',

                   //设置contentType类型为json

                   contentType : 'application/json;charset=utf-8',

                   //json数据

                   data : '{"username":"reader001","password":"psw001"}',

                   //请求成功后的回调函数

                   success : function(data) {

                            alert(data.username);

                   }

         });

}

 

c).Controller/Mapping

@RequestMapping("/jsonsource")

//@RequestBody 将json对象转成java对象

//@ResponseBody 表示返回的是json对象

public @ResponseBody User jsonSource(@RequestBody User user){

        

         return user;

}

 


你可能感兴趣的:(java)