2012-04-01 7 views
0

私のサイトは保険関連のサイトなので、ドライバと車両に入ると、カバレッジページに進みます - このページは各カバレッジの隣にそれぞれの車両をリストしますどの車のどのカバレッジを選択するか。問題はそれがこの上に爆発し続けていると私は理由が分からない。ここでは、JSPの爆発的な部分があります。 http://mattfleming.com/node/134スプリングウェブフローダイナミックJSP /フォームの問題

形式::ここで私はここに与えられたアドバイスに従うことをしようとしていたcoverages.jsp

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

ある

public class QuoteForm extends AbstractRTRForm implements Serializable { 
    private List<CoverageCodeWrapper> accdth = new ArrayList<CoverageCodeWrapper>();// = LazyList.decorate(new ArrayList<CoverageCodeWrapper>(), FactoryUtils.instantiateFactory(CoverageCodeWrapper.class)); 
private List<CoverageCodeWrapper> addeq = new ArrayList<CoverageCodeWrapper>();// = LazyList.decorate(new ArrayList<CoverageCodeWrapper>(), FactoryUtils.instantiateFactory(CoverageCodeWrapper.class)); 
... 
} 

あり、よりですが、私は簡単のためにそれを切り取ります。

FormAction:

@Override 
protected Event finishSetupForm(RequestContext context) throws Exception { 
    form.getQuoteForm().setAccdth(this.getWrapper()); 
    form.getQuoteForm().setAddeq (this.getWrapper()); 
    ... 
} 
private List<CoverageCodeWrapper> getWrapper() { 
    CoverageCodeWrapper c = new CoverageCodeWrapper(); 
    List<CoverageCodeWrapper> list = new ArrayList<CoverageCodeWrapper>(); 

    list.add(c); 

    return list; 
} 

エラーは非常に有用ではありませんが、私はそれをあげる:

org.apache.tiles.TilesExceptionを:パス「/ WEB-INF /含めてJSPException tiles/coverages.jsp 'となります。 ServletExceptionはページをインクルードしています。

私の目標は、ユーザーが1つのページですべての車両のカバレッジを選択するだけで、車両があるように多くのページをナビゲートする必要があるということです。このフォームは、ユーザーが入力できる車両の数が可変であるため、リストを使用します。

いただければ幸いですすべてのヘルプ、お礼を ジェリー

答えて

0

私は春がバージョン3にLazyList/autoPopulatingListだけを固定していたことを示す参照を読んでいたとして、私は上記の作業を取得していない可能性があり、私はバージョン2.5です。フォームを再設計しました。

私は別々のVOにしてカバレッジのすべてを移動:

public class CoverageVO { 
    private int coverage1; 
    private int coverage2; 
    ... 
} 

は、その後、私は形でこれらのオブジェクトのリストを持っている:

public class CoverageForm { 
    List<CoverageVO> coverages; 
} 

次に車両が中に入ったので、以前の画面では、必要な数を知っているので、FormActionクラスでインスタンス化します。

public class CoverageFormAction extends FormAction { 
    @Override 
    protected Event finishSetupForm(RequestContext context) throws Exception { 
     ... 
     for(int i = 0; i < vehicleCount; i++) 
      form.getQuoteForm().getCoverages().add(new CoverageFormVO()); 
     ... 
    } 
} 

だから、JSPで私はさまざまなブログに記載されている方法でそれを行うことができます:

... 
<spring:bind path="rtrForm.coverageForm.coverages[${vehicleIndex}].${fn:toLowerCase(vehicleCoverageList.coverageCode)}" > 
...