Avatar billede vis_dk Nybegynder
09. juni 2009 - 10:16 Der er 1 kommentar og
1 løsning

scriptlet variabel inden i jsp tag

Hej,

Jeg forsøger at oprette et antal rows i en tabel med følgende kode:

<% for (int i = 0; i < 4 - count; i++) {
    int index = i + count;
%>
    <tr>
        <td><form:input path="endpoints[${index}].address"/></td>
        <td><form:input path="endpoints[${index}].addressType"/></td>
    </tr>
<% } %>

Mit problem er, at jeg ikke kan få index variablen til at blive evalueret korrekt.

Jeg får følgende fejl:
org.springframework.beans.InvalidPropertyException: Invalid property 'endpoints[]' of bean class [dk.gov.oiosi.registration.sites.regsite.ProfileOrientedRegistrationWrapper]: Invalid index in property path 'endpoints[]'; nested exception is java.lang.NumberFormatException: For input string: ""

Det virker altså til at den evaluerer ${index} til en tom streng.
Avatar billede arne_v Ekspert
10. juni 2009 - 01:05 #1
Måske:

        <td><form:input path="${endpoints[index].address}"/></td>
        <td><form:input path="${endpoints[index].addressType}"/></td>

men index skal nok laves med en c:forEach og endpoints skal ligge som bean.

Eller måske kan du forEach'e over endpoints.
Avatar billede vis_dk Nybegynder
10. juni 2009 - 14:14 #2
Følgende fik jeg til at virke:

<% for (int i = 0; i < 4 - count; i++) {
  int index = i + count;
%>
<tr>
  <td><input name="endpoints[<%=index %>].address"/></td>
  <td><input name="endpoints[<%=index %>].addressType"/></td>
</tr>
<% } %>

Da index variablen var oprettet i en scriplet, kan man åbentbart kun referere til den i en scriptlet. (Ikke med $)

Jeg blev nød til at skrive ren html i stedet for et jsp tag, da det ikke virkede med en scriptlet inden i et jsp tag.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester