>  기사  >  Java  >  springmvc는 json 상호 작용-requestBody 및 responseBody(그림 및 텍스트)를 구현합니다.

springmvc는 json 상호 작용-requestBody 및 responseBody(그림 및 텍스트)를 구현합니다.

黄舟
黄舟원래의
2017-03-16 10:05:412075검색

이 글에서는 jsoninteraction-requestBody와 responseBody를 구현하기 위한 springmvc 관련 지식을 주로 소개한다. 매우 좋은 참조 값을 가지고 있습니다. 아래 에디터를 살펴보겠습니다

json 데이터 인터랙션

1. JSON 데이터 인터랙션이 필요한 이유

json 데이터 형식은 인터페이스 호출과 html 페이지에서 일반적으로 사용됩니다. json 형식은 비교적 간단하고 구문 분석하기 쉽습니다.

예: 웹 서비스 인터페이스, json 데이터 전송

2. json 상호 작용을 위한 springmvc

( 1) json을 요청하고 json을 출력합니다. 요청은 json 문자열이므로 요청한 콘텐츠를 프런트엔드 페이지에서 json으로 변환해야 하는데 이는 불편합니다.

(2) key/value를 요청하고 json을 출력합니다. 이 방법은 비교적 일반적입니다.

3. 환경 준비

3.1 json에서 변환된 jar 패키지 로드

에서 사용 springmvc Jackson의 패키지는 다음과 같이 json 변환을 수행합니다(@requestBody 및 @responseBody는 다음 패키지를 사용하여 json 변환을 수행합니다).

jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar

@RequestBody 함수:

@RequestBody 주석은 http를 읽는 데 사용됩니다. 콘텐츠(String)를 요청하려면 springmvc에서 제공하는 HttpMessageConverter 인터페이스를 사용하여 읽은 콘텐츠를 json, xml 및 기타 형식의 데이터로 변환하고 컨트롤러 메서드의 매개변수에 바인딩합니다.

이 예제 애플리케이션:

@RequestBody 주석은 http 요청의 json 데이터 수신을 구현하고 json 데이터를 javaobject

@ResponseBody 함수로 변환합니다.

이 주석은 Controller 메서드에서 반환된 개체를 HttpMessageConverter 인터페이스를 통해 지정된 형식(예: json, xml 등)의 데이터로 변환하고 Response를 통해 클라이언트에 응답하는 데 사용됩니다

이 예제 애플리케이션:

@ResponseBody 주석은 컨트롤러 메서드에서 반환된 객체를 클라이언트에 대한 json 응답으로 변환하는 것을 구현합니다.

3.2 json 변환기 구성

주석 어댑터에 messageConverters 추가


<!--注解适配器 --> 
 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
  <property name="messageConverters"> 
  <list> 
  <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 
  </list> 
  </property> 
 </bean>

참고: 463d7d566f84e66ad507872587b9c14c를 사용하는 경우 위의 내용을 정의할 필요가 없습니다.

4.json 대화형 테스트

4.1 입력 json 문자열, 출력은 json 문자열

4.1.1jspPage

jquery의 ajax를 사용하여 json 문자열을 제출하고 출력을 구문 분석합니다. JSON 결과 .

jduery를 사용할 때 jquery-1.4.4.min.js를 도입하는 것을 잊지 마세요


<%@ 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%>" rel="external nofollow" rel="external nofollow" > 
<title>json交互测试</title> 
 <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script> 
 <script type="text/javascript"> 
  //请求的是json,输出的是json 
  function reuqestJson(){ 
   $.ajax({ 
    type:&#39;post&#39;, 
url:&#39;${pageContext.request.contextPath }/requestJson.action&#39;, 
contentType:&#39;application/json;charset=utf-8&#39;,  
    //数据格式是json串,商品信息 
    data:&#39;{"name":"手机","price":999}&#39;, 
    success:function(data){//返回json结果 
     alert(data); 
    } 
   }); 
  } 
 </script> 
 </head> 
 <body> 
 <input type="button" onclick="reuqestJson()" value="请求的是json,输出的是json"/> 
 </body> 
</html>

4.1.2controller


아아앙

4.1.3 테스트 결과

4.2 입력 키/값, 출력은 json 문자열입니다.

4.2.1 jsp 페이지

jquery의 ajax를 사용하여 키/값 문자열을 제출하고 출력 json 결과를 구문 분석합니다.


rreee

4.2.2controller


package cn.edu.hpu.ssm.controller; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.ResponseBody;
import cn.edu.hpu.ssm.po.ItemsCustom; 
//json交互测试 
@Controller 
public class JsonText { 
 //请求json(商品信息),输出json(商品信息) 
 //@RequestBody将请求的商品信息的json串转成itemsCustom对象 
 //@ResponseBody将itemsCustom转成json格式输出 
 @RequestMapping("/requestJson") 
 public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){ 
  //@ResponseBody将itemsCustom转成json格式输出 
  return itemsCustom; 
 } 
}

4.2.3 테스트

백그라운드 콘솔에서는 "프런트에서 전달한 제품명 : 휴대폰"이 출력되고, http를 보면 json 데이터의 피드백을 볼 수 있습니다. 데이터.

위 내용은 springmvc는 json 상호 작용-requestBody 및 responseBody(그림 및 텍스트)를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.