0
我使用Spring Webflow 2設置了一個應用程序,並且遇到了問題。該應用程序在一個頁面上進行預訂,然後允許在另一個頁面上進行支付。預留模型對象正常工作;我可以填寫表格並提交,並在下面的確認屏幕上顯示完全填充的對象。但是,當我使用paymentInformation模型對象執行同樣的操作時,表單的內容在處理時不會綁定到模型對象中。爲什麼webflow不更新我的模型對象?
這是我的流程定義。 (我移動支付流入子流,而我試圖解決這個問題。)
<?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 bean只有preparePayment的結果,並且沒有提交表單。
而且因爲我敢肯定有人會問,這裏是從enterPayment頁面開頭的表單標籤:
<form:form modelAttribute="paymentInfo" method="post">
它沒有錯過行動,因爲它是自我發佈迴流,但你讓我看在正確的位置。我們使用不使用提交輸入類型的自定義按鈕,並將其與流中未提交表單的其他按鈕混合在一起。我有按鈕只是鏈接到下一個視圖狀態,而不是提交表單,這就是爲什麼它移動到正確的位置,但表現錯誤。輕鬆解決這樣一個惱人的問題。 – Travelsized 2012-05-08 14:20:19