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 に Bean が取り込まれ、enterPayment ページのフォームに正しく取り込まれます。しかし、submitPayment アクション メソッドをデバッグすると、paymentInfo Bean には preparePayment の結果しかなく、送信されたフォームからは何もありません。
誰かが尋ねると確信しているので、enterPayment ページの開始フォーム タグを次に示します。
<form:form modelAttribute="paymentInfo" method="post">