출처 : https://blog.naver.com/PostView.naver?blogId=stpark89&logNo=221109345492&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

 

input 창이 매우 많다..

대략 40개가 넘는다.. .hidden 값까지 50개...........
하나씩 뽑아보려다가 정말 미치는줄 알았음 
그래서 찾은것 !!


일단 이렇게   선언을 해주고 

$(document).ready(function(){ jQuery.fn.serializeObject = function() { var obj = null; try { // this[0].tagName이 form tag일 경우 if(this[0].tagName && this[0].tagName.toUpperCase() == "FORM" ) { var arr = this.serializeArray(); if(arr){ obj = {}; jQuery.each(arr, function() { // obj의 key값은 arr의 name, obj의 value는 value값 obj[this.name] = this.value; }); } } }catch(e) { alert(e.message); }finally {} return obj; };

실세 등록이든, 수정 버튼을 클릭했을때 

//수정 버튼 클릭시 사용하는 객체 var modifyBusinessOrderObj = JSON.stringify($("#modifyBusinessForm").serializeObject()); $.ajax({ ..... type : "POST", contentType : "application/x-www-form-urlencoded;charset=UTF-8", dataType : 'json', data : { 'data' : modifyBusinessOrderObj, }, ........ });

이렇게 하면 json 문자열로 form 내부에 있는것들을 쭉 뽑아준다.  당연 input 태그들에는 name 값 지정해줘야함

이렇게하면 컨트롤러로 날아오는데   받을때 !! 
우리는 HashMap 을 쓰고있어서 ...  
request 에 담겨있는 정보를 일단 HashMap 에 때려넣었다고 가정하고

들어가있는 데이터를 뽑아주는 부분임.  앞단은 우리 프레임워크라 소스 공개를 못함. : )

메서드 ====== ....{ String list = ""; for(String key : paramMap.keySet()){ if(key.equals("data")){ list = paramMap.get(key); } } //json 문자열 HashMap 에 넣기 위한 것 HashMap<String, String> dataMap = null; ObjectMapper mapper = new ObjectMapper(); try{ dataMap = mapper.readValue(list, new TypeReference<Map<String, String>>(){}); } catch (Exception e) { logger.error(e.getMessage()); }

1. 일단 json 문자열 을 String 변수 - list 에 담아둠
2.ObjectMapper 라는 객체를 선언한다.
3.옮겨둘 HashMap 에다가    objectMapper 에 readValue 라는 메서드를 이용하면됨.  : ) 끝

[출처] jquery - form - serializeObject|작성자 피아노치는

'15 jquery > 50 ajax관련' 카테고리의 다른 글

00 data - undefined 체크  (0) 2021.08.03
Posted by useways
,