2014-02-26 2 views
0

나는 SmartGWT 4.0 어플리케이션을 가지고 있으며, 작동하는 RESTful 웹 서비스 (Spring MVC 컨트롤러)를 가지고 있으며, transformResponse를 재정의하는 표준 DataSource를 사용하고있다.SmartGWT TransformResponse handling null

컨트롤러에 ID를 전달할 때 DataSource가 훌륭하게 작동합니다. JSON 데이터를 정상적으로 반환합니다. 문제는 내가 편안한 웹 서비스에서 NULL을 돌려받을 때이다.

SmartGWT 데이터 소스의 경우 null을 반환해야합니까? ID를 웹 서비스에 전달하고 데이터베이스에서 일치하는 레코드를 찾지 못하면 웹 서비스에서 null을 반환해야합니다.이 경우 JSON이 없으며 비어 있습니다. 문자열 ("").

ListGridRecord[] recordArray = new ListGridRecord[]{}; 
    dsResponse.setData(recordArray); 
    dsResponse.setStartRow(0); 
    dsResponse.setEndRow(0); 
    dsResponse.setStatus(RPCResponse.STATUS_SUCCESS); 
    dsResponse.setTotalRows(0); 
    data = "{}"; 

를하지만 아직도 내가하지 않으려는 오류를 생성합니다

그래서 저는 다음과 같이이 문제를 처리하기 위해 내 transformResponse를 업데이트 할 수 있습니다.

또 다른 가능성은 빈 개체를 반환하는 것입니다. 따라서 데이터베이스에 개체가있는 경우 해당 개체가 채워집니다. 일치하는 데이터가 없으면 다음과 같이 웹 서비스에서 빈 객체를 반환 할 수 있습니다.

MyObject myObject = new MyObject(); 

어느 것이 좋습니다? 나는 후자를 향해 기울고있다 ... 빈 물체.

추가 정보가있는 경우이 질문을 업데이트하겠습니다. 감사!

답변

1

DS Response에 속성을 설정하고 클라이언트 측에서 값을 확인하여 결과가 없는지 확인하십시오.

서버 측 :

import com.isomorphic.datasource.DSResponse; 

DSResponse dsResponse = new DSResponse(DSResponse.STATUS_SUCCESS); 
dsResponse.setProperty("json_string", null); 
dsResponse.setTotalRows(0); 

클라이언트 측 :

import com.smartgwt.client.data.DSResponse; 

String json=response.getAttribute("json_string"); 

이 코드를 시도하십시오