2012-04-01 48 views
0

我的网站是一个保险的相关网站,让司机进入司机和车辆后,他们将继续覆盖范围页面 - 这个页面会列出每个车辆相邻的覆盖,让他们选择哪个车辆的覆盖范围。问题是它一直在吹,我不知道为什么。这是正在炸毁的JSP部分。下面是coverages.jspSpring Web Flow的动态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> 

我试图按照这里给出的建议是:http://mattfleming.com/node/134

形式:

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:JSPException异常而包括路径“/ WEB-INF /瓷砖/ coverages.jsp”。包含页面时的ServletException。

我的目标是让用户只需选择所有的覆盖范围为所有的交通工具中的一个页面上有VS,通过尽可能多的网页,因为有车辆navigage。表格使用列表作为用户可以输入的车辆数量是可变的。

任何帮助将不胜感激,谢谢,你 杰里

回答

0

我不能得到上述工作,因为我已经读了参考,说明春天到了只有固定的LazyList/autoPopulatingList在3版本,我在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)}" > 
...