Weblog eines Informatikers

IT-News, Informatik, Linux, Security, Java und ich war in Namibia!

Struts: Iterieren über Formularfelder

Mai 14th, 2008

Momentan nutze ich bei einem Kunden vor Ort Struts in der Version 1.1 und bin u.a. auf das Problem gestoßen über eine Collection zu iterieren. Eine weitere Forderung ist, dass die Collection veränderbar sein soll und daher Daten in Formularfeldern ausgibt.

Mein Vorgänger hat dies an Struts vorbeientwickelt mit Java-Code und JSP-Tags vermischt, was natürlich besonders hässlich anzusehen ist.

Zunächst muss man darauf achten, dass jedes Textelemente in der Schleife ein indexed=”true” bekommt, damit die generierten Textfelder auch unterscheidbar sind. Im HTML-Code bekommen diese ein [0], [1], … angehängt.

In meinem speziellen Fall war die Ausgabe in Ordnung, jedoch wurden Werte die geändert wurden nicht geändert. Des Rätsels Lösung: Es musste zusätzlich noch mittels type=”de.packagename.ElementType” bekannt gemacht werden von welcher Klasse die Elemente der Collection erstellt wurden. Außerdem funktionierte die Rückgabe der Werte nur, wenn id und property identische Werte beinhalten.
[xml]
<LOGIC:iterate id=”myCollection” name=”myForm” property=”myCollection” indexId=”counter” type=”de.packagename.ElementType”>

<HTML:text name=” myCollection” property=”myProperty” maxlength=”4″ indexed=”true” />

</LOGIC:iterate>[/xml]

One Response to “Struts: Iterieren über Formularfelder”

  1. Sabine sagt:

    Sehr interessante Information! Vielen Dank.

    LG Sabine

Leave a Reply