Temp22
198
2019-06-12 23:16:28
2
187

[Spring] @ResponseBody 질문입니다 !!


        @ResponseBody

	@RequestMapping(value="deleteMyBoard.do")

	public void deleteMyBoard(@RequestBody BoardVO vo, ModelAndView mav, HttpSession session) throws Exception {

		System.out.println("내가 쓴 글 삭제 처리");

		boardService.deleteBoard(vo);

	}



이런식으로 void 메소드에서도 @ResponseBody 어노테이션을 써주지않으면 ajax에서 에서 에러가뜹니다.

@ResponseBody는 Json으로 바꿔서 보내는 걸로 아는데..왜 아무것도 리턴하지 않는 메소드에서도 @ResponseBody 어노테이션을 써야만 하는건가요 ?



void 메소드러다 내부적으로 리턴하는 값이 있나요 ?



$.ajax({

						type : 'post',

						url : "deleteMyBoard.do",

						contentType : "application/json",

						data : JSON.stringify({"seq":seq}),

						dataType : "text",

						success : function(result){	

				        	location.reload();

			        	},

			        	beforeSend:function(){

			        	        $('.wrap-loading').removeClass('display-none');

			        	  },



			        	complete:function(){

			        	        $('.wrap-loading').addClass('display-none');

			        	},

			        	error : function(request,status,error){

			        		alert("code = "+ request.status + " message = " + request.responseText + " error = " + error);

			        		alert("글이 삭제 되지 않았습니다");

			        	}

					});
0
0
  • 답변 2

  • 사는게힘듭니다
    2019-06-12 23:21:56

    void를 int로 바꾸신 후 int형 변수하나 선언해서 

    boardservice.deleteboard(vo)의 리턴값을 그 변수에 담고 그 변수를 리턴하세요.


    @ResponseBody가 붙으면 매핑되는 URL을 호출한 쪽으로 메소드의 리턴값을 리턴하게되는데

    ajax의 success의 익명함수의 매개값으로 아무것도 전달이 되지않아서 그런걸거에요

    1
  • Temp22
    198
    2019-06-13 10:35:41

    답변감사합니다..

    success로 꼭 값이 전달되어야 하나봅니다 ?


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.