2013-10-11 1 views
1

모델을 렌더링하려는 웹 플로우 뷰가 있습니다. 이 모델은 타사 jar 파일에서 가져온 것으로 직렬화 할 수 없습니다. 여기 내가하고 싶은 일이 있습니다 (아래). 이것은 LinkedHashMap을 모델로 전달할 수 없다는 Grails 웹 플로우 오류를 발생시킵니다. 렌더링 모델에서 내가 원하는 모든 것을 전달할 수 있다고 생각했습니다.grails webflow - 뷰에 직렬화되지 않은 모델 전달하기

basicPlanList { 
     PlanCollection plans = Plan.all(new HashMap<String, Object>()); 
     render(view: "basicPlanList", model: [plans: plans.data]) 
     on("continue") { 
      bindData(flow.order, params) 
     }.to("addOnsList") 
    } 

Plan 및 PlanCollection은 타사에서 가져온 것으로 직렬화되지 않습니다. 나는 흐름에 계획 모델을로드하는 작업을 설정하려했지만, Grails는 직렬화 오류로 불평 :

first { 
     action { 
      PlanCollection plans = Plan.all(new HashMap<String, Object>()); 
      [plans: plans.data] 
     } 
     on("success").to "basicPlanList" 
     on("error").to "handleError" 
    } 

내 해결 지금까지 단지 GSP에서 모델을로드하고 웹 흐름을 무시하는 것입니다 쓰레기는 :

<g:each in="${Plan.all(new HashMap<String, Object>()).data}" status="i" var="plan"> 

그것은 작동하지만 오히려 GSP에 모델을 전달할 것, 오류 검사/캡처하지 않고 데이터를로드 할 수 원격 타사 서버를 호출하는 GSP가 없습니다. 당신은 내가하지 직렬화 된 도메인 클래스가있는 경우

listBooks { 
    action { 
     [bookList: Book.list()] 
    } 
    on("success").to "showCatalogue" 
    on(Exception).to "handleError" 
} 

가 큰 작품 :

Grails의 API는 작업 상태에 대한 예를 갖추고 있습니다.

+0

스택 추적 오류를 공유 할 수 있습니까? 여기에 설명 된 evict() 메서드를 사용해 볼 수도 있습니다. http://stackoverflow.com/questions/1691853/grails-webflow-keeping-things-out-of-flow-scope –

답변

-2

가장 좋은 대답은 직렬화 문제로 인해 웹 플로우를 사용하지 않는 것입니다. 나는 하나의 형식 또는 다른 형식으로 직렬화에 동일한 문제가있는 많은 다른 게시물을 읽었습니다. 스트라이프 전자 상거래 라이브러리를 사용하고 웹 플로우의 거의 모든보기에 스트라이프 클래스를 전달했습니다. 'evict'제안을 시도했지만 한 가지 문제점을 해결하자마자 제 3 자 스트라이프 항아리로 인해 다른 문제가 발생했습니다.

스트라이프는 훌륭하지만 웹 플로우에서는 사용하지 않습니다. 그것을 피하십시오.

관련 문제