반응형

@RequestBody : HTTP 요청의 body 내용을 자바 객체로 매핑한다.

@ResponseBody : 자바 객체를 HTTP 요청의 body로 매핑한다.

 

예제 :

 

test.jsp
function test(){
        var rowData = $("#main_grid").getRowData();     
     
        var json = JSON.stringify(rowData) ;
        var jsonInfo = JSON.parse(json) ;
  
        var actionUrl = "/test/testList.do";
        

      
            $.ajax({
                type:"POST",
                dataType : 'json',
                data : json,
                url: actionUrl,
                processData : true /*querySTring make false*/,
                contentType : "application/json; charset=UTF-8",              
               
                success:function(result) {
                    var jsonResult = JSON.parse(JSON.stringify(result)) ;
                    
                    if(jsonResult.result == "success" ) {
                        alert(jsonResult.resultMsg) ;                         
                         
                    } else if (jsonResult.result == "failure" ) {
                        alert(jsonResult.resultMsg) ;
                        return false ;
                    }
                },
                complete : function () {
                },                
                error: AjaxError
            }) ; 
      
     } else {
            return false;
        }        
    }

 

$("#main_grid") 라는 jqGrid에서 getRowData()를 통해 전체 Row를 가져왔다.
그 후 Json형식으로 변환한 뒤 파라미터로 던져주었다.


test.java

@RequestMapping("/test/testList.do")
 @ResponseBody
 public Object testList(HttpServletRequest request, @RequestBody List<Map<String, Object>> list) throws Exception {
  Map <String, String> resultMap =  new HashMap<String, String>();
  
  String result = "";
  String resultMsg = "";
  
  try {   
   for(Map<String, Object> tList : list) {
    aVO authVO = new AuthVO() ;
    
    aVO.setUse_auth(tList.get("use_auth").toString());
    aVO.setMenu_id(tList.get("menu_id").toString());
    aVO.setUse_yn(tList.get("use_yn").toString());

    authMgmtService.mergeAuthMgmtList(aVO) ;
   }
   
   result = "success";
   resultMsg = "성공" ;
   
  } catch (Exception e) {
   result = "failure";
   resultMsg = "실패" ;
  }
  
  resultMap.put("result", result);
  resultMap.put("resultMsg", resultMsg);
  
  return resultMap;
 }

 

 

전송 된 파라미터를 List<Map<String, Object>> 형식으로 받아온다. 앞에 @RequestBody를 쓰면 그대로 list에 매핑되어진다.

그리고 list의 size만큼 for문을 실행하는데 aVo라는 vo객체를 하나 생성해서 list에서 받아온 map의 value값을 넣어준다.

 

작업을 수행한 뒤 result와 resultMsg를 resultMap에 담아 리턴한다. @ResponseBody를 명시했기 때문에 응답데이터에 Map객체가 매핑되어 전달된다.

 

 

 

반응형

WRITTEN BY
사자봉구

,
반응형

java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

 

Tomcat 구동 시 제목과 같은 오류가 발생할 경우.

 

컴퓨터에 설치되어있는 Tomcat폴더 밑에 lib폴더에 commons-pool-x.x.jar 파일을 넣어주면 해결된다.

반응형

'Programming > Spring' 카테고리의 다른 글

Spring @RequestBody, @ResponseBody  (0) 2017.01.23
Spring Interceptor 설정(Session)  (1) 2016.11.17

WRITTEN BY
사자봉구

,
반응형

문법 : string.substring(start, end);

 

파라미터 값  

 start :

 필수사항. 문자열 추출을 시작할 위치. 첫 문자 인덱스가 0부터 시작 함.

 end :

 선택사항. 문자열 추출을 종료할 위치. 생략시 나머지 문자열 전부 추출.

 

 

start와 end가 포함 된 예제 :

var str = "Hello world!";
var res = str.substring(4, 1);

결과 : ell

 

 

start만 포함 된 예제 :

var str = "Hello world!";
var res = str.substring(2);

결과 : llo world!

 

 

start가 0보다 작은 수 예제 :
var str = "Hello world!";
var res = str.substring(-3);

결과 : Hello world!

start가 0보다 작으면 인덱스 위치가 0부터 시작(추출).

 

반응형

'Programming > JavaScript' 카테고리의 다른 글

자바스크립트 replaceAll  (0) 2016.12.23
부트스트랩 modal 닫힘 방지  (0) 2016.11.16

WRITTEN BY
사자봉구

,