Écriture d'une chaîne de propriété d'un objet avec <html:text />
J'ai un objet dans mon formulaire qui contient diverses propriétés de la chaîne.
Quand je veux imprimer dans ma JSP forme je pouvais le faire avec
<c:out value="${form.company.address}" />
qui fonctionne parfaitement.
Maintenant je veux créer un champ de saisie HTML. Mais quand j'écris
<html:text property="company.address" />
Je reçois un message d'erreur indiquant
Caused by: javax.servlet.jsp.JspException: No getter method for property company.address of bean org.apache.struts.taglib.html.BEAN
Savez-vous comment je peux créer un champ de saisie HTML avec mon adresse de la société?
Mon haricot a les getters et les setters.
Vous devez vous connecter pour publier un commentaire.
La bonne façon de traduire ce:
à Struts est,
Cela signifie qu'il y a une demande avec le nom
UFForm
avec un haricot qui contient une méthodegetCompany()
(que je suis en supposant que les rendements d'unCompany
objet) et que dans les virages a ungetAddress()
de lecture (si vous comprenez ce que je veux dire). En un mot, le haricot de la demande/sessionUFForm
, la TagLib est l'accèsgetCompany().getAddress()
;PS Espère que
getAddress()
ne retourne pas une null d'autre<html:text />
lèvera une exception.Modifier Pour expliquer ce que j'ai fait ci-dessus:
Ce que j'ai fait ci-dessus dans
<html:text />
est équivalent àproperty
paramètre deux fois dans un<html:text />
tag?user.address.postCode
à l'intérieur d'un domaine de la propriété pour tout<html:xxxx />
dans Struts. (pour un bean a appeléUser
).Votre bean devrait avoir setter correspondant et des méthodes de lecture.
Formulaire Html
Correspondant bean.
<c:out value="${UFForm.company.address}" />
ne fonctionne pas non plus.Quand vous obtenez la valeur pour la zone de texte avec:
Vous êtes en fait en disant à jambes de suspension à faire:
De sorte que vous devez avoir un getter pour la société (ce qui ne doit pas retourner la valeur null ou la prochaine opération sera un échec) et un setter pour l'adresse sur l'objet de la société. Les setters/getters doit être publique. Ce doit déjà être le cas puisque vous pouvez effectuer les opérations suivantes avec pas d'erreur:
Maintenant, la chose qui me dérange, c'est cette partie:
${UFForm.
. Lorsque vous utilisez JSTL vous accédez au formulaire de manière explicite. Avec le<html:text>
vous accéder à une propriété sur la forme implicite. L'implicite formulaire est fourni par la enfermant<html:form>
tag. Avez-vous le<html:text>
à l'intérieur d'un<html:form>
?La forme de haricot est situé à/créé/exposé basé sur la forme de haricot cahier des charges pour les associés
ActionMapping
afin de vérifier votre cartographie.getCompany().getAddress()
et passetAddress()
.