@Response Body 와@RequestBody 주해 의 차이

@Response Body 와@RequestBody 주해 의 차이
머리말
@Response Body 와@RequestBody 주 해 를 상세 하 게 설명 하기 전에@RequestMapping 주 해 를 알 아 보 겠 습 니 다.@RequestMapping 은 요청 주소 맵 을 처리 하 는 주석 으로 클래스 나 방법 에 사용 할 수 있 습 니 다.클래스 에 사용 하면 클래스 의 모든 응답 요청 을 표시 하 는 방법 은 이 주 소 를 부모 경로 로 합 니 다.방법 에 사용 하면 클래스 의 부모 경로 에서 추가 방법 에 주석 을 달 고 있 는 주 소 를 이 방법 에 접근 할 것 임 을 나타 낸다.예컨대

/**
*     ,    
*/

@RequestMapping(value = "/controllerDemo")
public class ControllerDemo {
  //      ,   
  @RequestMapping(value = "/methodDemo")
  public String methodDemo() {
    return "helloWorld";
  }
}

그 에 대응 하 는 액 션 은'액 션=controllerDemo/methodDemo'다.그래서 로 컬 방문http://localhost:8080/controllerDemo/methodDemo 'hello World.jsp'페이지 로 돌아 갑 니 다.
2 주해 상술
이 부분 에서 저 자 는@ResponseBody 와@RequestBody 주해 의 차 이 를 상세 하 게 소개 할 것 입 니 다.
  • @Responsebody 주 해 는 이 방법의 반환 결 과 를 HTTP 응답 본문(Responsebody)에 직접 기록 하 는 것 을 나타 내 며,일반적으로 비동기 로 데 이 터 를 가 져 올 때 사용 합 니 다.
  • @RequestMapping 을 사용 한 후 반환 값 은 보통 점프 경로 로 해석 되 며,@Responsebody 를 더 한 후 되 돌아 오 는 결 과 는 점프 경로 로 해석 되 지 않 고 HTTP 응답 본문 에 직접 기 록 됩 니 다.예 를 들 어 비동기 로 json 데 이 터 를 가 져 오고@Responsebody 주 해 를 추가 하면 json 데 이 터 를 직접 되 돌려 줍 니 다.
  • @RequestBody 주 해 는 HTTP 요청 본문 을 삽입 하 는 방법 입 니 다.적절 한 HttpMessageConverter 를 사용 하여 요청 체 를 대상 에 기록 합 니 다.
  • 예컨대
    
    @RequestMapping(value = "person/login")
    @ResponseBody
    public Person login(@RequestBody Person person) {  //       datas    Person    
      return person;  //           ,       HTTP      
    }
    
    페이지 비동기 요청:
    
    function login() {
      var datas = '{"name":"' + $('#name').val() + '","id":"' + $('#id').val() + '","status":"' + $('#status').val() + '"}';
      $.ajax({
        type : 'POST',
        contentType : 'application/json',
        url : "${pageContext.request.contextPath}/person/login",
        processData : false,
        dataType : 'json',
        data : datas,
        success : function(data) {
          alert("id: " + data.id + "name: " + data.name + "status: "+ data.status);
        },
        error : function() {
          alert('Sorry, it is wrong!');
        }
      });
    };
    
    3 확장
    다음은 요청 경로(url)의 동적 인 파 라 메 터 를 가 져 오 는@PathVariable 주 해 를 소개 합 니 다.예컨대
    
    /**
    * @RequestMapping(value = "/person/profile/{id}/{name}/{status}")    {id}/{name}/{status}
    *   @PathVariable int id、@PathVariable String name、@PathVariable boolean status
    *     ,    。
    */
    
    @RequestMapping(value = "person/profile/{id}/{name}/{status}")
    @ResponseBody
    public Person porfile(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) {
      return new Person(id, name, status);
    }
    
    
    페이지 비동기 요청:
    
    function profile() {
      var url = "${pageContext.request.contextPath}/person/profile/";
      var query = $('#id').val() + '/' + $('#name').val() + '/' + $('#status').val();
      url += query;
      $.get(url, function(data) {
        alert("id: " + data.id + "name: " + data.name + "status: "
            + data.status);
      });
    }
    
    
    읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기