Schreiben Sie eine string-Eigenschaft ein Objekt mit <html:text />
Habe ich ein Objekt in meinem Formular mit verschiedenen string-Eigenschaften.
Wenn ich drucken möchte ihn in meiner JSP-form, ich könnte es mit
<c:out value="${form.company.address}" />
funktioniert perfekt.
Möchte ich nun erstellen Sie eine HTML-input-Feld. Aber wenn ich Schreibe
<html:text property="company.address" />
Bekomme ich eine Fehlermeldung
Caused by: javax.servlet.jsp.JspException: No getter method for property company.address of bean org.apache.struts.taglib.html.BEAN
Wissen Sie, wie kann ich erstellen ein HTML-Eingabefeld mit meiner Firma die Adresse?
Meine Bohne hat die notwendigen entsprechenden Getter und setter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den richtigen Weg, übersetzen Sie diese:
zu Streben ist,
Bedeutet es, dass es eine Anfrage mit dem Namen
UFForm
mit einer Bohne enthält eine MethodegetCompany()
(das hab ich vorausgesetzt, gibt eineCompany
Objekt) und in Kurven hat eingetAddress()
getter - (wenn Sie verstehen, was ich meine). In einer nussschale, die bean aus dem request/sessionUFForm
die TagLib ist der Zugriff aufgetCompany().getAddress()
;PS Hoffe, dass
getAddress()
zurück nicht eine null sonst<html:text />
wird eine exception werfen.Bearbeiten Zu erklären, was ich Tat, oben:
Was habe ich oben in
<html:text />
entsprichtproperty
parameter zweimal in einer<html:text />
tag?user.address.postCode
im inneren eine Eigenschaft Feld für alle<html:xxxx />
im Streben. (für eine bean namensUser
).Ihre Bohnen sollten über entsprechende setter-und getter-Methoden.
Html-Formular
Entsprechende bean.
<c:out value="${UFForm.company.address}" />
würde nicht funktionieren.Wenn Sie den Wert für das Textfeld mit:
Sind Sie in der Tat sagen, zu Streben, zu tun:
Also mußt du einen getter für das Unternehmen (muss nicht null zurück, oder die nächste operation wird fehlschlagen) und einen setter für die Adresse auf die Firma Objekt. Die setter/Getter muss öffentlich sein. Dies muss bereits der Fall ist, da können Sie das folgende tun mit keine Fehler:
Nun, die Sache, die mich nervt, ist dieser Teil:
${UFForm.
. Wenn Sie JSTL Sie sind auf die form ausdrücklich. Mit der<html:text>
Sie auf eine Eigenschaft zugreifen, auf die form implizit. Diese implizite form wird durch die umschließenden<html:form>
tag. Sie haben die<html:text>
innerhalb einer<html:form>
?Form-bean liegt/erstellt/ausgesetzt basierend auf der Formular-bean-Spezifikation für die damit verbundenen
ActionMapping
so überprüfen Sie Ihre Zuordnung auch.getCompany().getAddress()
und nichtsetAddress()
.