2010-11-18 5 views
1

1-2-3을 계산하는 것만 큼 간단하다고 생각했기 때문에이 질문을하는 것이 싫다. 나는 어제와 오늘 이후 연구했지만 해결책을 찾지 못했습니다.JQuery JQGrid : Spring MVC 3에서 JSON 데이터를로드하는 방법 @RequestBody

내가 원한다. 스프링 MVC 3 컨트롤러에서 JSON 데이터를 검색하고 그 데이터를 JQGrid에 표시하십시오. 설정하려면

는 JSON 데이터를 전송하기 위해 내 컨트롤러, 나는이 문서 Ajax Simplifications in Spring 3.0

json으로 요청을 처리하는이 요청 매핑의 조언을 따랐다 : 난 때문에

@RequestMapping(value = "/users", method = RequestMethod.GET) 
public @ResponseBody List<UserDTO>viewUsersAsJSON(HttpServletRequest request, HttpServletResponse response, ModelMap model) { 

    logger.debug("Retrieving all users as JSON"); 

    return userRoleService.getAll(); 
} 

이 매핑 작동 Firefox 및 RESTClient에서 JSON 데이터를 검색 할 수 있습니다. 내가 어떤이 데이터를 가져 오기 위해 파이어 폭스 또는 위해 RESTClient에서 = 응용 프로그램/JSON 헤더를 수락 지정하지 않은

[{"username":"johnsmith","userId":1,"firstName":"John","lastName":"Smith","id":"1"},{"username":"stackoverflow","userId":2,"firstName":"Stack","lastName":"Overflow","id":"2"}] 

다음은 샘플 JSON 데이터 출력 (I가 민감한 데이터를 제거했다)이다. 그냥 전체 URL을 입력하면됩니다 : http://localhost/myapp/users

Spring MVC 3 매핑에 특별한 설정이나 XML 설정을하지 않았습니다. 나 JSON.

자바 스크립트 :

<script type="text/javascript"> 
jq(function() { 
    jq("#list2").jqGrid({ 
     url:'/myapp/users', 
    datatype: 'json', 
    mtype: 'GET', 
     colNames:['Id','Username', 'User Id', 'First Name', 'Last Name'], 
     colModel:[ 
     {name:'id',index:'id', width:55}, 
     {name:'username',index:'username', width:90}, 
     {name:'userId',index:'userId', width:90}, 
     {name:'firstName',index:'firstName', width:100}, 
     {name:'lastName',index:'lastName', width:80, align:"right"} 
     ], 
     rowNum:10, 
     rowList:[10,20,30], 
     pager: '#pager2', 
     sortname: 'id', 
     viewrecords: true, 
     sortorder: "desc", 
     caption:"Users Table" 
    }); 
    jq("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false}); 

}); 


</script> 

가 여기에 JSP에 선언 내 CSS 요소입니다 :

<table id="list2"></table> 
<div id="pager2"></div> 

내가 파이어 폭스 오류 콘솔을 실행

여기 내 JSP 페이지에 선언 내있는 jqGrid입니다. 오류가 없습니다. 나는 방화범을 쳤다. 나는 어떤 오류도 보지 못했다.

JqGrid가 올바른 열 이름으로로드되지만 비어 있습니다. 간단한 배열 데이터를 사용하여 다른 JSP 페이지에서 다른 JqGrid를 설정하고 데이터를로드 할 수 있습니다. 어떤 아이디어 또는 해결책?

Spring MVC 3 JSON JqGrid 통합의 실제 예제를 찾는 것이 정말 어렵습니다.

답변

2

JSON을 허용하려면 jsonreader (details here)를 정의하거나 jqgrid가 기대하는 기본값을 준수하도록 출력을 설정해야합니다. jqGrid가 예상대로 정확하게 구조화하지 않으면 자동으로 실패합니다. 빠른 응답

{"page":1,"total":1,"records":1,"rows":[{"id":1,"cell":["johnsmith",1,"John","Smith",1]}]} 
+0

감사 :

은 객체가이 모양 귀하의 JSON 구조 조정을 할 수 있습니다 jsonreader 기본으로이 작업을합니다. 나는 지금 그 링크를 읽을거야. 잘하면 그것은 내가 무엇을 찾고 있어요 :) – chris

+0

괜찮습니다. 방금 jsonreader를 기본으로 사용하는 방법을 보여주기 위해 업데이트되었습니다. 잘하면 그곳에서 나머지 부분을 얻을 수 있습니다. –

+0

나는 그것을 지금 본다. JqGrid는 정확한 JSON 형식을 기대하고 있습니다 (jsonReader를 통해 매핑하는 방법을 지정할 수 있음). 나는 이것이 내가 지금 필요로하는 것이라고 생각한다. – chris

관련 문제