2013-08-29 1 views
1

ExtJS 4.2.1Spring MVC/Data-Rest을 사용하고 있습니다. 어쨌든, 데이터 나머지는 성공적인 GET 요청에 다음과 같은 구조를 반환합니다PUT 요청에서 ExtJS 4.2.1이 totalProperty를 처리하지 못하도록하려면 어떻게해야합니까?

{ 
    content: [ ... objects .... ], 
    links: [ ... list of rel links ... ], 
    page: { 
     size: 25, 
     totalElements: 4, 
     totalPages: 1, 
     number: 1 
    } 
} 

그래서, 내 프록시에, 나는 page.totalElementstotalProperty을 설정했습니다. 훌륭하게 작동합니다.

그러나 우리가 PUT 요청을 보내면 자연스러운 응답 (정확한 답변)은 204 NO CONTENT입니다. 이제 totalPropertytotal (예 : page.xxx)으로 설정하면 문제가 없습니다. 그러나 ExtJS는 을 구문 분석하고 page이 null이기 때문에 예외를 반환하려고합니다.

그렇다면 ExtJS가 PUT 요청의 totalProperty를 무시하도록 어떻게 할 수 있습니까?

답변

0

하. 해결 방법을 찾은 것처럼 보입니다. 내가 그것을 좋아하는지 확실하지 않지만 그것이 효과가있다. 나는 같은 내 컨트롤러를 변경 :

return new ResponseEntity<>("OK", HttpStatus.OK); 

것은 이전과, 그것이 어디 :

return new ResponseEntity(HttpStatus.OK); 

의 ExtJS가 신경 쓰지 것으로 보인다. 이상한.

0

@cbmeeks에서 Ext.JS 4.1.3과 비슷한 문제가 발생했으며 수정본 here가 게시되었습니다.

/** 
* Fix for Json reader when the HTTP response is Status Code: 204 No Content and 
* at least one of the pair root/totalProperty is not a direct property of the returned json 
* http://www.sencha.com/forum/showthread.php?127585 
* @author rgralhoz 
*/ 
Ext.data.reader.Json.override({ 
    createAccessor: (function() { 
     var re = /[\[\.]/; 

     return function (expr) { 
      if (Ext.isEmpty(expr)) { 
       return Ext.emptyFn; 
      } 
      if (Ext.isFunction(expr)) { 
       return expr; 
      } 
      if (this.useSimpleAccessors !== true) { 
       var i = String(expr).search(re); 
       if (i >= 0) { 
        return Ext.functionFactory('obj', 

         'return obj' + (i > 0 ? 

          '.hasOwnProperty("' + 
           expr.substring(0, i) + 
           '")? obj.' + expr + ' : null' : 

          expr)); 
       } 
      } 
      return function (obj) { 
       return obj[expr]; 
      }; 
     }; 
    }()) 
}); 

면책 조항 :

이 프로젝트에 fixes.js 파일에이 코드를 추가 Ext.Js '기능을 재정의하십시오. 그 통지하십시오

  1. 4.2.1에 대한 수정이있을 수 있습니다 동일하거나 유사한 당신이 Ext.Js를 업그레이드 할 때 그들은 그것을 변경하지 않은 확인, 자신의 함수를 재정의되면
  2. , 그렇지 않으면 ' 코드에 대한 업데이트가 느슨합니다. Ext.JS 3.1.1에서 같은 문제에 대한
+0

수정 : http://www.sencha.com/forum/showthread.php?274536-JsonReader-crashes-when-load-has-no-data - and - root-is-undefined – Ricardo