web-dev-qa-db-fra.com

comment utiliser la balise <bean: write> dans struts 1.2?

Comment utiliser la balise <bean:write> dans Struts 1.2.

Dans l'attribut name, quelle valeur doit être utilisée? Le nom de haricot est-il le nom de votre propriété?

7
sachin

Javadoc pour <bean:write> :

Spécifie le nom d'attribut du bean dont la propriété est accédée pour extraire la valeur spécifiée par propriété (si spécifié). Si la propriété n'est pas spécifiée, la valeur de ce bean lui-même sera rendue.

Essentiellement, si vous avez un JavaBean (avec des getters et des setters),

Person person = new Person;
request.setAttribute("person", person);

en définissant <bean:write name="person" property="age" />, vous indiquez à Struts de rechercher en premier l'objet person first de PageContext scope. Si non trouvé, alors request, puis session, puis application portée.

L'attribut property="age" (à partir de la balise <bean:write />) appellera ensuite la méthode getter getAge() à partir de l'objet Person (qu'il y ait ou non une variable d'instance appelée age sur le bean).

J'espère que cela t'aides.

30
Buhake Sindi

Pour afficher person.getAge() vous utiliseriez

<bean:write name="person" property="age" />
3
Vlad

L'attribut "name" doit spécifier le nom du bean. Par exemple, si vous essayez de générer une propriété à partir d'un ActionForm, l'attribut name doit être défini sur le nom de l'ActionForm et l'attribut property sur la propriété de l'ActionForm que vous souhaitez écrire. Donc, dans ce cas, vous pourriez faire:

<bean:write name="productInfo" property="summary" />

Si vous déclarez un bean non-ActionForm en utilisant une balise, l'attribut name serait alors défini sur le nom de ce bean défini:

<bean:define id="displayText" value="Text to Display" />
<bean:write name="displayText" />

Notez que l'attribut de propriété est manquant dans ce cas, auquel cas la valeur tostring du bean lui-même sera affichée.

0
Cameron