2012-04-26 76 views
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"> 

回答

0

這是很難找出錯誤如果不包括完整形式的HTML代碼。乍一看,它可能是form標籤中缺少的action屬性。

<form:form action="${flowExecutionUrl}" modelAttribute="paymentInfo" method="post"> 
    <input type="submit" id="_eventId" value="submitPayment" /> 
</form:form> 
+0

它沒有錯過行動,因爲它是自我發佈迴流,但你讓我看在正確的位置。我們使用不使用提交輸入類型的自定義按鈕,並將其與流中未提交表單的其他按鈕混合在一起。我有按鈕只是鏈接到下一個視圖狀態,而不是提交表單,這就是爲什麼它移動到正確的位置,但表現錯誤。輕鬆解決這樣一個惱人的問題。 – Travelsized 2012-05-08 14:20:19

相關問題