Spring Web Flow 2의보기 상태와 동작 상태 사이에 모델 데이터를 어떻게 전달합니까?

StackOverflow https://stackoverflow.com/questions/227532

  •  03-07-2019
  •  | 
  •  

문제

아래 웹 흐름에서 나는 뷰 상태의 제출 이벤트에서 형태 데이터를 흐름 변수 (LifeCycleForm)에 바인딩합니다. 이름, 레이블 및 설명 속성이 모두 예상대로 채워져 있음을 확인했습니다.

그러나, 행동 상태에서의 발현이 평가 될 때 세 가지 속성은 모두 null이다. 내 양식 Bean은 직렬화 가능하며 간단한 문자열 특성을 사용하고 있습니다.

내가 뭘 잘못하고있는거야?

나는 Spring Webflow를 처음 접했기 때문에 분명한 것을 놓쳤을 수도 있습니다.

<var name="lifeCycleForm" class="com.btmatthews.freelancer.lifecycle.portlet.LifeCycleForm" />

<view-state id="createLifeCycle" model="lifeCycleForm">
    <binder>
        <binding property="name" required="true" />
        <binding property="label" required="true" />
        <binding property="description" required="false" />
    </binder>
    <transition on="submit" to="createLifeCycleAction" />
    <transition on="cancel" to="lifeCycleCreationCancelled" bind="false" />
</view-state>

<action-state id="createLifeCycleAction">        
    <evaluate expression="lifeCycleService.createLifeCycle(lifeCycleForm.name, lifeCycleForm.label, lifeCycleForm.description, null, null)" />
    <transition on="success" to="lifeCycleCreated" />
    <transition on="failure" to="createLifeCycle" />
</action-state>

<end-state id="lifeCycleCreated" />

<end-state id="lifeCycleCreationCancelled" />

업데이트: 나는 원래 게시물에서 실패한 내 단위 테스트라고 언급하지 않았다. 이후 AbstractFlowExecutionTests는 요청 매개 변수의 바인딩을 구현하지 않는다는 것을 알게되었습니다. 이것은 나에게 약간의 감독처럼 보입니다. 최신 야간 봄 웹 플로우 2.0.4를 시도했으며 동작은 동일하게 유지됩니다.

업데이트: 내 문제는 스프링 웹 플로우 모의가 양식 제출을 시뮬레이션하지 않는다는 것입니다.

미리 감사드립니다, 브라이언

도움이 되었습니까?

해결책

많은 Chagrin에게, 나는 또한 최근 웹 플로우 테스트 모의가 Spring의 바인딩을 사용하지 않는다는 것을 알았습니다. Eclipse와 같은 IDE 내에서 Tomcat과 같은 컨테이너에서 디버깅을 사용하여 흐름을 실행해 보셨습니까? 당신이하지 않았다면, 그것은 매우 유용 할 것입니다. 도움이 필요하면 추가 팁을 제공 할 수 있지만 시작하려면 Eclipse 웹 표준 도구 및 웹 도구 프로젝트 플러그인을 아직 다운로드하지 않은 경우 다운로드합니다.

부수적 인 것처럼, 단위 테스트 바인딩을 실제로 원한다면, 스프링 웹 플로우 1 구성을 사용하여 흐름이 약간 더 장황하게 만들지만 모델 객체에 바인딩 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top