Spring Webflow 2를 사용하여 응용 프로그램을 설정하고 있는데 문제가 있습니다. 앱은 한 페이지를 예약 한 다음 다른 페이지에서 결제 할 수 있습니다. 예약 모델 개체가 잘 작동합니다. 양식을 작성하여 제출하고 다음 확인 화면에서 완전히 채워진 개체를 보여줍니다. 그러나 paymentInformation 모델 객체를 사용하여 동일한 작업을 수행 할 때 양식의 내용이 처리 될 때 모델 객체에 바인딩되지 않습니다.웹 플로우가 내 모델 객체를 업데이트하지 않는 이유는 무엇입니까?
내 흐름 정의는 다음과 같습니다. (나는이 문제를 해결하려고 노력하는 동안 나는 서브 플로우에 지불 흐름을 움직였다.)
<?xml version="1.0" encoding="UTF-8"?>
<flow
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/webflow"
xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
<var name="paymentInfo" class="com.myapp.payments.domain.PaymentInfo" />
<input name="reservation" />
<decision-state id="paymentDecision">
<if test="reservationServiceImpl.needsPayment(reservation)"
then="enterPayment"
else="resolvePayment" />
</decision-state>
<view-state id="enterPayment" view="enterPayment" model="paymentInfo">
<on-render>
<evaluate expression="reservationMultiAction.preparePayment" />
<set name="viewScope.stepNumber" value="3" />
</on-render>
<transition on="back" to="editReservation" />
<transition on="submitPayment" to="resolvePayment" />
</view-state>
<action-state id="resolvePayment">
<evaluate expression="reservationMultiAction.submitPayment" />
<transition on="success" to="receipt" />
<transition on="failure" to="payment" />
</action-state>
<end-state id="editReservation" />
<end-state id="receipt" />
</flow>
호출 preparePayment은 flowScope에 콩을 채 웁니다하고 올바르게 enterPayment 페이지에있는 양식을 채 웁니다. 하지만 submitPayment 액션 메소드를 디버깅 할 때, paymentInfo 빈은 preparePayment의 결과 만 갖고, 제출 된 폼의 결과는 없다.
내가 누군가 물어볼 것입니다 확신하기 때문에, 여기에 enterPayment 페이지에서 여는 폼 태그의 :
<form:form modelAttribute="paymentInfo" method="post">
흐름으로 자체 게시되었으므로 작업을 놓치지 않았지만 나를 올바른 위치에서 보게했습니다. 제출 입력 유형을 사용하지 않는 사용자 정의 단추를 사용하고 양식을 제출하지 않은 다른 단추와 혼합했습니다. 나는 폼을 제출하는 대신에 다음 뷰 - 상태로 연결하는 버튼을 가지고 있었기 때문에 그것이 올바른 장소로 옮겨 가고 있었지만 잘못 행동 한 것입니다. 이러한 성가신 문제를 쉽게 해결할 수 있습니다. – Travelsized