ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Json 데이터 보내기
    Framework/Spring 2019. 9. 30. 23:54
    반응형

    오늘은 Spring 으로 CRUD를 만드는 중에 jquery로 Ajax 비동기 통신을 해 보았다. 처음에는 통신 성공이 되지 않아서 골치 거리 였는데 console.log("1")로 확인해 보니 통신 성공이 되는 걸 알았다. 하지만 데이터를 넘어오지 않는 것을 보니 json데이터로 통신이 되지 않는 문제 라는 것을 파악 할 수 있었다. 그래서 json파일을 어떻게 spring으로 구현을 하는지 포스팅 하겠다. 

    	@RequestMapping(value = "/insert", method = RequestMethod.POST)
    	public void insert(HttpServletRequest request,BoardBean bb,HttpServletResponse response) { 
    		session.selectOne("test.insert", bb);
    		JSONObject jsonObject = new JSONObject();	//Spring에서 JsonObject로 데이터를 만들어준다.
    		boolean result = true;						//데이터를 만들어 준다
    		jsonObject.put("result", result);   		//put을 통해 데이터를 보내준다.
    		try {	
    			response.getWriter().print(jsonObject);	//response.getWriter로 프린트 해주면 통신 성공
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}

    다른 내용은 필요 없고 json 데이터를 보내는 법을 보자.

    JsonObject를 이용하여 객체를 만들고 

    put메소드를 이용하여 데이터를 삽입해준다.

    jsonObject를 response로 보내주면 통신이 성공 한다.

     $("#content_insert").click(function(e){
        	e.preventDefault();
        	var data = { 'title' : $("#write_title").val(), 'content' : $("#write_content").val(), 'star': star, 'name' : $('#write_name').text() }
        	$.ajax({ 
              url: "/insert", 
              data: data, 
              method:"POST", 
              contentType: "application/x-www-form-urlencoded; charset=UTF-8",
              dataType: "json", 
              success : function(data){
              console.log(data);
              $("#content_update").addClass("dn");
              $("#content_write").addClass("dn");
              $("#content_list").removeClass("dn");
              location.reload();
              }
           });
        });

    통신이 성공하면 데이터를 console, html 에 찍어보면 result가 true인 것을 알 수 있다.

    통신이 성공한 다음 function의 내용이 실행 된다. 

    <div class="content_outer dn" id="content_write"> 
    	<form name="write_form" method="POST">
    	 <div class="form-group">
    		<label style="font-size: 40px;">제목</label>  <div style="float: right;">작성자 <a id="write_name"><%=request.getAttribute("id")%></a> </div>
    		<input id="write_title" class="form-control" name="title" placeholder="제목을 입력해주세요">
    		<hr>
    	 </div> 
    	 <div class="form-group">
    		<h5>내용</h5>
    		 <textarea id="write_content" class="form-control" name="content" rows="5" placeholder="내용을입력해주세요"></textarea>
    		<hr>
    	 </div>
    	  <div class="form-group">
    	   <p class="star_grade" >
    	        <a href="#" value="1">★</a>
    	        <a href="#" value="2">★</a>
    	        <a href="#" value="3">★</a>
    	        <a href="#" value="4">★</a>
    	        <a href="#" value="5">★</a>
    		</p> 
    	 </div>
    		<h5>첨부파일</h5> 
    		<input class="btn btn-outline-primary" type="file" enctype="multipart/form-data" multiple="multiple"><br><hr>
    		<button class="btn btn-outline-success" id="content_insert" >작성</button>
    		<button class="btn btn-outline-danger" id="write_cancel">취소</button><br>
    	</form>
    </div>

     

    반응형

    댓글

Designed by Tistory.