Struts:< logic:iterate> ohne JSP code

cloda

Grünschnabel
Hallo,
ich versuche grade eine Schleife zu konstruieren.Es funktioniert alles so wie es soll, was aber mein Problem ist dass ich noch immer JSP-Code drin habe.
Hier ein kleiner Ausschnitt:
Code:
   <html:select name="tPOForm" property="allPOT" >
        
   <logic: present name="tPOForm" property="allPOT">
           <logic:iterate id="allPerm" name="tPOForm" property="allPOT">
                   <%for(int i=0; i<tpf.getAllOType().length;i++){
                           out.println("<option>"+    pot[i].getName() + "</option>");
                       }
               %>
           </logic:iterate>
       </logic: present>
   </html:select>

Wie kann man es ändern, so dass keine for-Schleife in der Form da ist sondern mit Struts?
geht es mit bean:write?falls ja wie greift man auf die einzelnen Elemente in dem Array zu?
Vielen Dank für euere Hilfe
 
Hallo!

Wo ist das Problem? logic:iterate ist doch ein Schleifenconstruct und stellt dir in dem mit 'id' definierten bean das aktuelle Schleifenelement zur Verfügung. Mit bean:write kannst du dann Felder des aktuellen Elements ausgeben.
Code:
for(int i=0; i<tpf.getAllOType().length;i++){
out.println("<option>"+ pot[i].getName() + "</option>");
}
Ich verstehe die Schleife nicht. Die Schleife läuft bis tpf.getAllOType().length, du greifst dann aber innerhalb der Schleife auf ein ganz anderes array zu? Das ist sehr fehleranfällig. Wenn du deine Objekte nach beanmässig aufbaust, ist das alles viel generisch und übersichtlicher.

Um aus einem Array eine Menge von options innerhalb eines select zu erzeugen, gibt es ein spezielles tag: html:eek:ptions damit sparst du dir die iteration.

Beschreibe doch mal, welche Objekte du wie darstellen willst, dann kann man dir vielleicht besser helfen.

Grüsse TrueSun
 

Neue Beiträge

Zurück