2012-04-05 12 views
3

私はspring 2.5アプリケーションを持っていて、フロー内のいくつかのページは完全に動作します。 「壊れた」であるページがフォームで提出しました:何もせず例外をスローしないSpring Webflowサブミットをデバッグする方法

<input type="image" name="_eventId_submit" src="<c:url value="images/continue.png" />" /> 

をこのページのフロー定義が正しいになります

<view-state id="coverages" view="tiles.coverages" model="rtrForm"> 
    <on-entry> 
... 
    </on-entry> 
    <transition on="submit" to="policyVehicleDetailsDecisionForward"> 
     <evaluate expression="coverageFormAction.bindAndValidate" /> 
     <evaluate expression="coverageFormAction.evaluateCoverages(rtrForm)" /> 
    </transition> 
</view-state> 

私はmainFlowAction.evaluateCoverages(でデバッグ文を持っています... )ログファイルにはこれが表示されませんが、例外はありません。ここからどこに行くのか誰も知っていますか?私はTomcat 6.0.33にeclipseを接続してリモートデバッグを行いましたが、私はまだ何も例外を見ませんでした...私はこの時点で困っており、これを理解する方法はありません。提案は歓迎されるだろう。

これをさらにいくつか取り上げて、QuoteFormAction.bindAndValidate()メソッドをオーバーライドしました。悲しいことに、このメソッドがログで呼び出されているのを見ていません - この時点で想定していますフォームはそれを呼び出すことさえしていない...私は私が働くすべてのページのために持っているのと同じパターンを使用しています。

<form id="rtrForm" action="/rtrSite/main.svc?execution=e1s5" method="post"> 
... 
<select name="quoteForm.policyLevelCoverages.towing" class="violationType" id="TOWING" validate="selectOneOption" req=""> 
... 
<select name="quoteForm.vehicleLevelCoverages[0].rental" class="violationType" id="RENTAL" validate="selectOneOption" req=""> 
... 
<input type="image" name="_eventId_submit" src="images/continue.png" /> 
<input type="image" name="_eventId_save" src="images/save.png" value='Save -n- Return' /> 
<input type="image" src="images/back.png" name="_eventId_back" value='Back' /> 
<input type="reset" id="reset" /> 
</form> 

JSPフォーム生成:

<c:forEach var="policyCoverageList" varStatus="policyCoverageStatus" items="${quoteForm.coverages.jspCoverageCodesPolLevel}"> 

      <spring:bind path="quoteForm.policyLevelCoverages.${fn:toLowerCase(policyCoverageList.coverageCode)}" > 
      <select name="${status.expression}" class="violationType" id="${policyCoverageList.coverageCode}" validate="selectOneOption" req=""> 
       <c:if test="${policyCoverageList.isRequired == 'N'}"> 
        <option value="-1"><spring:message code="coverage.decline" /></option> 
       </c:if> 
       <c:forEach var="policyCoverage" items="${policyCoverageList.limits}"> 
        <option value="${policyCoverage.id}" <c:if test="${policyCoverage == 'TODO'}">SELECTED</c:if>> 
          ${policyCoverage.coverageLimits} 
         </option> 
        </c:forEach> 
       </select> 
      </spring:bind> 

</c:forEach> 
+0

を把握するのに役立ちますコンソール/ログファイルにメッセージが表示されます

<logger name="org.springframework.webflow"> <level value="debug" /> </logger> 

上でデバッグレベルをオンクライアントコード –

+0

カルロス - 火かき棒を付けてコンソールに行ったが、何も見えなかった、特定のタブがありますか? –

+0

Johnからform:errorsというタグを追加するという以前の回答がありました。私のフォームには、彼が提案したものと似たバージョンがありました。私は持っています:投稿時に常にtiles.coveragesに戻ってきます –

答えて

0

それは"tiles.coverages"ビューに戻っされるたびに、多分私は何かを明らかに見下ろす - 私はフォームを省略しましたか?そうであれば、バインディング/検証エラーが発生していると思います。 jspで<form:errors path="*"/>を入れて、それが正しいかどうか確認してください。

編集:

これらの2つのどちらも非ヌルと2番目は空ではありませんか?だから、

quoteForm.vehicleLevelCoverages[0].rental 

ためvehicleLevelCoveragesリスト/配列内の少なくとも1つの要素がありますか?

片側ません:

あなたは春Weblflow 2を使用していますか?あなたがしている場合は、bindAndValidateをする必要はありませんが、それはあなたのためにそれをとにかく行います。使用Firebugの確認するために何らかの問題がありますです:ロガーで

+0

私は次のフォームを持っていることを確認しました:エラーとそれはtiles.coveragesページに戻ります。私はすぐに私のCoveragesFormActionでbindAndValidateメソッドをオーバーライドして例外をログに記録し、何も表示しません...これはただ静かに失敗するでしょうか? –

+0

いいえ、失敗しないだけで、サーブレットコンテナに伝播します。どの形式エラーが発生しているか知っていますか?あなたは偶然、「日付」をバインドしていますか? –

+0

私はちょうどフォームの概要を投稿しました - 日付はありませんが、私はリストにバインドします... –

2

は、あなたが私のアドバイスは、あなたが問題

関連する問題