2012-04-01 14 views
0

meine Website ist eine Versicherung bezogen Website, so dass nach dem Fahrer die Fahrer und die Fahrzeuge eingeben, sie würden auf die Berichterstattung-Seite - diese Seite würde jedes Fahrzeug neben jeder Abdeckung, die ihnen erlaubt um zu wählen, welche Abdeckung für welches Fahrzeug. Das Problem ist, dass es ständig in die Luft geht und ich habe keine Ahnung warum. Hier ist der Teil der JSP, der explodiert. Hier ist coverages.jspSpring web flow dynamische JSP/Form Ausgaben

<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> 

Ich habe versucht, den Rat hier gegeben zu folgen: http://mattfleming.com/node/134

der Form:

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)); 
... 
} 

Es gibt mehr, aber ich haue sie der Einfachheit halber aus.

Die 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; 
} 

Der Fehler ist nicht sehr hilfreich, aber ich werde es geben:

org.apache.tiles.TilesException: JSPException während einschließlich Pfad ‚/ WEB-INF/Kacheln/coverages.jsp '. ServletException beim Einschließen der Seite.

Mein Ziel ist es, dass die Benutzer nur alle Coverages für alle Fahrzeuge auf einer Seite wählen, oder dass sie so viele Seiten wie Fahrzeuge durchfahren müssen. Das Formular verwendet Listen, da die Anzahl der Fahrzeuge, die der Benutzer eingeben kann, variabel ist.

Jede Hilfe wäre sehr dankbar, Dankes- Jerry

Antwort

0

ich nicht die oben arbeiten könnte und wie ich einen Hinweis gelesen hatte, die besagt, dass Frühling nur hatte die LazyList/autoPopulatingList in Version 3 fixiert und Ich bin in Version 2.5 Ich habe mein Formular neu gestaltet.

zog ich alle die Deckungen in eine seperate VO:

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

Dann habe ich eine Liste dieser Objekte in der Form:

public class CoverageForm { 
    List<CoverageVO> coverages; 
} 

Dann da die Fahrzeuge in die eingegeben wurden vorherigen Bildschirm, ich weiß, wie viele ich brauche, so in der FormAction-Klasse instanziiere ich sie:

So in der JSP kann ich es so, wie in den verschiedenen Blogs beschrieben:

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