2014-02-27 4 views
0

파일을 업로드하고 모든 것이 잘 업로드됩니다. 내가 정의 된 기본 키와 JSON 개체를 반환하려는, 그래서이 수행파일 업로드 작업에서 JSON을 반환하는 방법

ec.web.sendJsonResponse를 ("{offerId은 '$는 {offer.offerId}'} ')

가지 패키지를 방법 (이 파일 업로드 연산이기 때문에) 내 자바 스크립트 수신 코드를 기대하고 있지만,이 같은에서 랩 :

<html> 
    <head></head> 
    <body> 
    <pre style="word-wrap: break-word; white-space: pre-wrap;"> 
     <textarea>{offerId: '100030'}</textarea></pre> 
    </body> 
    </html> 

을하고 "사전"태그는 "텍스트 영역"요소를 찾는에서 내 "getElementsByTagName"를 유지합니다.

WebResource.sendJsonResponse가 추가하지 않는다는 것을 알고 있습니다. DOM 객체를 기대하기 때문에 contentType을 json으로 설정하고 수신 코드가 불평합니다 (오류> 문서로 해석 된 리소스가 MIME 유형 application/json으로 전송 됨).

어떻게 해결합니까? 나는 이것이 J2EE 질문이라고 생각하지만 moqui의 다른 누군가에게 일어날 수 있습니다.

+0

이에 대답하려면 setJsonResponse() 호출보다 많은 서버 측 코드를 살펴 보는 것이 도움이 될 것입니다. 다른 말로 표현하면 어디서부터 호출되며, 전환에서 어떻게 응답을 정의 할 수 있습니까? 포함 된 결과는 매우 이상합니다. 일반 JSON 응답에는 HTML이 없어야합니다. –

답변

0

대답은 매우 간단했습니다.

 String resp = "<textarea>{\"offerId\": \"${offer.offerId}\"}</textarea>" 
    //ec.web.sendJsonResponse(resp) 
    ec.web.response.writer.write(resp) 
0

moqui에서 ec.web.sendJsonResponse는 JSON 응답을 되돌려 보내도록 설계되었습니다. 그래서 당신은 화면의 전환에 업로드를 다루는 곳에서 간단합니다, 당신은 추가 할 수 있습니다 :

def respMap = [:] 
respMap.put("offerId", offer.offerId) 
ec.web.sendJsonResponse(respMap) 

한편 기본 응답 유형이 "없음"

<default-response type="none"/> 

과 같이 정의된다 respMap을 사용하여 더 복잡한 JSON 객체를 작성한 다음 ec.web.sendJsonResponse 메소드를 사용하여 자동으로 응답 맵 컨텐츠를 JSON 응답에 전송할 수 있습니다.