Syntax in JSP-Seiten

Status
Nicht offen für weitere Antworten.

gimli6

Mitglied
Hallo!

Da das folgende Thema a bisserl schwammig ist, hab ich es trotzdem mal hier gepostet.

Ich moechte in meiner JSP-Seite einen Schleifenzaehler einbauen. Dieser Schleifenzaehler soll mir bei jedem Duchlauf eine html-Spalte generieren, in der ein Dropdownmenue vorhanden sein soll.

Der Code fuer die Realisierung koennte so aussehen, wenn er funktionieren wuerde:
Code:
<% for (int k = 0; k <= columcounter; k++ ) { 
<td>        
    <html:select property="allerlei">
        <html:optionsCollection property="allerlei"
                           label="bezeichnung"
                           value="nummer"/>
        </html:select>
</td>
}; %>

Wie schon erwaehnt funktioniert das ned. Der Compiler mosert da rum, weil er gerne in der ersten und in der vorletzten Zeile ein ";" haben moechte.

Naja, meine "eigentliche" Loesung sieht ja so aus:
Code:
 <% for (int k = 0; k <= j; k++) {
out.println("<td>"); 
out.println("<html:select property="allerlei">");
out.println("<html:optionsCollection property="allerlei" ");
out.println("label="bezeichnung" ");
out.println("value="nummer"/>");
out.println("</html:select>");       
out.println("</td>");
}; %>

Aber da stimmt wohl was anderes ned.
Wo liegt hier der Fehler und wie muss ich was aendern, damit es funktioniert? Gaensefuesschen maskieren mit "\" funktioniert auch ned!

Danke schon mal vorab fuer jegliche Hilfe![/code]
 

KSG9|sebastian

Top Contributor
der ";" nach der schließenden Klammer bei der for-Schleife muss weg. und, was machst du mit "<td>" ? willst du ein html element ausgeben ?
 

gimli6

Mitglied
KSG9|plak hat gesagt.:
der ";" nach der schließenden Klammer bei der for-Schleife muss weg. und, was machst du mit "<td>" ? willst du ein html element ausgeben ?

Ja, ich moechte gerne html-elemente mit ausgeben, bzw. halt auch Beans.
Aber bei solchen Zeilen mosert der Compiler auch rum:
Code:
out.println("label="bezeichnung" ");
Fehlermeldung : ')' expected

Also das '" "' ist nicht schoen, aber mit '\" "' funktionierts auch ned! :x
 

gimli6

Mitglied
Also wenn ich es so mache:
Code:
<% for (int k = 0; k <= j; k++ ) { 
out.println("<td>"); 
out.println("<html:select property=\"allerlei\"> ");
out.println("<html:optionsCollection property=\"allerlei\" ");
out.println("'label=\"bezeichnung\" ");
out.println("'value=\"nummer\"/> ");
out.println("</html:select>");       
out.println("</td>");
} %>

kann ich zwar die JSP-Seite anzeigen ohne Fehlermeldung, jedoch wird mir das Dropdownmenue nicht dargestellt.
Im HTML-Quelltext wird mir obiges wie geschrieben ausgegeben, jedoch nicht interpretiert, also dessen Inhalt zurueckgeliefert.

-------------------------------

So, andere Idee:
Kann ich obiges auch mit <logic:iterate .. loesen?
Kann ich dem iterate eine feste Schleifengroesse mitgeben, die er abarbeiten soll? Und was muss dann evtl. fuer eiine ID angegeben werden, wenn ich keine habe? Moechte ja nur zaehlen.
Hab dazu noch nix gefunden, aber thoeretisch waers zumindestens ein guter Ansatz! :roll:
 

daLenz

Aktives Mitglied
hallo, nur um kurz auf den erstes beitrag zurückzukommen. hast du nur vergessen die %> & <% jeweils zu schliessen (hier beim eintippen), oder hast du sie wegelassen(in der jsp?)

ansonsten müsstest du diese noch schliessen:

Code:
<% for (int k = 0; k <= columcounter; k++ ) {  %>

..................

<% }; %>

greetz
 

gimli6

Mitglied
Moin Moin!

Also eigentlich habe ich es nicht vergessen.
Ich wollte alles was innerhalb der for-Schleife steht ausgeben, darum habe ich die Klammern nicht geschlossen.
 

daLenz

Aktives Mitglied
ja desshalb funktioniert es wenn du es mit out.println machst, aber nicht, wenn du es mit jsp-syntax versuchst, dann müsstest du die klammern eben auch schliessen, so dass nur java-code in <% steht % ;) also für dein bsp.

Code:
<% for (int k = 0; k <= columcounter; k++ ) { %>

<td>        
    <html:select property="allerlei"> 
        <html:optionsCollection property="allerlei" 
                           label="bezeichnung" 
                           value="nummer"/> 
        </html:select> 
</td> 

<%}; %>
 

KSG9|sebastian

Top Contributor
Code:
<% for (int k = 0; k <= j; k++ ) { 
out.println("<td>"); 
out.println("<html:select property=\"allerlei\"> "); 
out.println("<html:optionsCollection property=\"allerlei\" "); 
out.println("'label=\"bezeichnung\" "); 
out.println("'value=\"nummer\"/> "); 
out.println("</html:select>");        
out.println("</td>"); 
} %>
Lies dir mal bitte n paar tutorials durch, das ist voll der Misch-Masch zwischen HTML, Struts-Taglibs, JSP-Tags u.s.w.


Code:
out.println("label="bezeichnung" ");
Und dann würd ich dir empfehlen mal n bissl Java-Grundlagen zu studieren!

Wenn du nur "label=bezeichnung" ausgeben willst dann so

Code:
out.println("label=bezeichnung");

Wenn bezeichnung ne Variable ist dann so

Code:
String bezeichnung = "Das ist eine Bezeichnung";
out.println("label="+bezeichnung);

Wenn label eine Variable ist...

Code:
String label = "Das ist ein Label";
out.println(label+"=bezeichnung");

Und wenn beides Variablen sind...

Code:
String bezeichnung = "Das ist eine Bezeichnung";
String label = "Das ist ein Label";
out.println(label+"="+bezeichnung);
 

gimli6

Mitglied
daLenz hat gesagt.:
ja desshalb funktioniert es wenn du es mit out.println machst, aber nicht, wenn du es mit jsp-syntax versuchst, dann müsstest du die klammern eben auch schliessen, so dass nur java-code in <% steht % ;) also für dein bsp.
....

Ja voll Suppi! Es funktioniert! :shock:
Vielen Dank! :toll:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben