Как использовать тег <bean: write> в стойке 1.2? - PullRequest
7 голосов
/ 14 июля 2011

Как использовать тег <bean:write> в Struts 1.2.

В атрибуте name какое значение нужно использовать? Является ли bean name именем вашей собственности?

Ответы [ 3 ]

30 голосов
/ 14 июля 2011

Javadoc для <bean:write>:

Указывает имя атрибута бина, свойство которого доступно для извлечения значения, указанного в свойстве (еслиуточняются).Если свойство не указано, будет отображено значение самого компонента.

По сути, если у вас есть JavaBean (с геттерами и сеттерами),

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

отустановив <bean:write name="person" property="age" />, вы говорите Struts сначала найти person объект первый из области PageContext.Если не найдено, то request, затем session, затем application scope.

Атрибут property="age" (из тега <bean:write />) затем вызовет метод получателя getAge() изPerson объект (независимо от того, существует ли переменная экземпляра с именем age на компоненте).

Надеюсь, это поможет.

3 голосов
/ 14 июля 2011

Для отображения person.getAge() вы должны использовать

<bean:write name="person" property="age" />
0 голосов
/ 14 июля 2011

Атрибут «name» должен указывать имя компонента. Например, если вы пытаетесь вывести свойство из ActionForm, для атрибута name должно быть указано имя ActionForm, а для атрибута свойства должно быть установлено свойство ActionForm, которое вы хотите записать. Так что в этом случае вы можете сделать:

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

Если вы объявляете bean-компонент, отличный от ActionForm, например, с помощью тега, то атрибуту name будет присвоено имя этого определенного bean-компонента:

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

Обратите внимание, что в этом случае атрибут свойства отсутствует, и в этом случае будет отображаться значение tostring самого компонента.

...