JSP Tag
rocket
- java
Hallo,
weiß jemand wie ich bei diesem JSP Tag, der ein Textfeld erzeugt:
<html:text property="jahr" value="xy"/>
dynamisch Inhalte als Vorbelegung (quasi das value-attribut) hinzufügen kann?
Sowas funktioniert nicht:
<html:text property="jahr" value="<%= out.println("test") %>"/>
Hallo,
<html:text property="jahr" value="xy"/>
Das ist kein JSP Tag, sondern ein Struts Tag. es ist zwar schon super lange her für mich, aber...
dynamisch Inhalte als Vorbelegung (quasi das value-attribut) hinzufügen kann?
Schau in der Struts Doku nach, wird da nicht etwas für default Vorbelegung geboten?
Du kannst aber auch im Java Code das referenzierte Objekt mit einer gewünschten Vorbelegeung versehen.
Oder eben ganz ganz dreckig in JSP coden:
<%=
if (Jahrobject.feldwasduwillst)
out.println("<input type="text" name="jahr" value="Jahrobject.feldwasduwillst"")
else
out.println("<input type="text" name="jahr" value="Vorbelegungwasduwillst"")
%>
Oder so ähnlich.
Gruß,
Cruz
moin Cruz, hallo rocket :)
<html:text property="jahr" value="xy"/>
Was ist daran nicht in Ordnung? In diesem Beispiel wird "xy" als Vorbelegung verwendet. Also entweder habe ich dich nicht verstanden - oder du hast dein eigenes Beispiel nicht getestet :)
Oder eben ganz ganz dreckig in JSP coden:
<%=
if (Jahrobject.feldwasduwillst)
out.println("<input type="text" name="jahr" value="Jahrobject.feldwasduwillst"")else
out.println("<input type="text" name="jahr" value="Vorbelegungwasduwillst"")
%>
Ouch! Wozu soll das denn gut sein????
Sowas solltest du niemanden anbieten - auch nicht mit dem Hinweis dies sei "dreckiger" Code!
Wenn du eine solche Unterscheidung machen willst:
<%
var vorbelegung;
if (Jahrobject.feldwasduwillst){
vorbelegung=value1;
}else{
vorbelegung=value1;
}%>
<html:text property="jahr" value="<%=vorbelegung%>"/>
Wobei auch dies keine sehr schöne Lösung ist. Die Logik sollte strikt von der Darstellung getrennt werden.
liebe Grüße aus Berlin
lina-
Hallo lina,
<%
var vorbelegung;
if (Jahrobject.feldwasduwillst){
vorbelegung=value1;
}else{
vorbelegung=value1;
}%><html:text property="jahr" value="<%=vorbelegung%>"/>
Ja, das wäre tatsächlich ein Kilo Dreck leichter, aber eigentlich immer noch unter der Gürtellinie. Hat der OP nicht gesagt, dass das Schachteln von Tags nicht funktioniert? Ich weiss das nicht mehr so genau und hab auch grad keine Möglichkeit schnell was zu testen.
Die Logik sollte strikt von der Darstellung getrennt werden.
Ja das wissen ja auch die meisten, die Struts einsetzen. Es ist nur leider so, dass man manchmal an Grenzen stößt, die man nur auf eine schmutzige Art lösen kann. Und lieber eine gut dokumentierte Schweinerei als gar keine Lösung.
Gruß,
Cruz
moin Cruz :)
Ja, das wäre tatsächlich ein Kilo Dreck leichter, aber eigentlich immer noch unter der Gürtellinie. Hat der OP nicht gesagt, dass das Schachteln von Tags nicht funktioniert?
Ja hat er - aber nur weil er die Syntax von Struts/JSP nicht ganz verstanden hat.
Sein eigenes Beispiel würde funktionieren, wenn er das out.println() weg nimmt. Aber mal ehrlich:
<html:text property="foo" value="<%='test'%>"/> ist doch hirnverbrannt... funktioniert aber ;)
Ich habe auch keine Ahnung was der OP gegen <html:text property="foo" value="test"/> hat ;)
Die Logik sollte strikt von der Darstellung getrennt werden.
Ja das wissen ja auch die meisten, die Struts einsetzen. Es ist nur leider so, dass man manchmal an Grenzen stößt, die man nur auf eine schmutzige Art lösen kann. Und lieber eine gut dokumentierte Schweinerei als gar keine Lösung.
Da hast du vollkommen recht! Ich versuche ja sämtliche Logik in Beans abzuhandeln (also komplett von der jsp-seite zu trennen) - aber auch das gelingt mir nicht in 100% der Fälle :/
Hier hat Struts/Jsp einfach noch Schwächen. Leider sieht das bei JSF nicht anders aus.
liebe Grüße aus Berlin
lina-