Спецификация Java Server Pages 1.2

JSP.4.2 <jsp:setProperty>


Акция jsp:setProperty

устанавливает значения свойств в Bean'е. Атрибут name, обозначающий этот Bean, обязан быть определён до появления этой акции.

Имеются два варианта акции jsp:setProperty. Оба они устанавливают значение одного или более свойств в Bean на базе типа свойств. Обычно в Bean выполняется самоанализ с целью обнаружения существующих свойств, и, для каждого из них,  имени, простое оно или индексированное, его типа и методов setter и getter. Самоанализ также указывает, имеет ли тип данного свойства класс PropertyEditor.

Свойства в Bean могут быть установлены из одного или более параметров объекта request, из String-константы или из вычисленного выражения времени запроса. Простые и индексированные свойства могут быть установлены с использованием jsp:setProperty.

При установке из параметра объекта request применяется конвертация, описанная в , использующая целевое свойство для определения целевого типа.

При присвоении из значения, заданного как String-константа, применяется конвертация, описанная в , использующая целевое свойство для определения целевого типа.

При присвоении из значения, заданного как атрибут времени запроса, никакая конвертация типов не применяется, как указано в Разделе .

При присвоении значений индексированным свойствам значение обязано быть массивом/array; к элементам применяются правила, описанные в предыдущем параграфе. Неудача конверсии приводит к ошибке времени трансляции или времени запроса.

Примеры

Следующие два элемента устанавливают значение из значений параметра request:
 

<jsp:setProperty name=”request” property=”*” />

<jsp:setProperty name=”user” property=”user” param=”username” />
 

Следующие два элемента устанавливают свойство из значения:
 



<jsp:setProperty name=”results” property=”row” value=”<%= i+1 %>” />

Синтаксис
 

<jsp:setProperty name="beanName" prop_expr />

prop_expr ::=

property="*" |

property=”propertyName”|

property=”propertyName” param="parameterName"|


property=”propertyName” value=”propertyValue”

propertyValue ::= string

Значение propertyValue может также быть значением атрибута времени запроса, как описано в .

propertyValue ::= expr_scriptlet

(См. синтаксис скриптлета выражения “<%= ... %>”)

Элемент <jsp:setProperty> имеет следующие атрибуты:

Таблица JSP.4-2


name Имя экземпляра Bean'а, определённое элементом <jsp:useBean> или каким-либо другим элементом.

Экземпляр Bean'а обязан содержать свойство, которое Вы хотите установить.
Определяющий элемент обязан появиться до элемента <jsp:setProperty> в том же файле.
property Имя свойства Bean'а, значение которого Вы хотите установить.

Если Вы устанавливаете propertyName в *, тогда тэг будет выполнять итерацию поверх текущих параметров ServletRequest, подбирая совпадения имён параметров и типа(-ов) значений с именами свойств и типом(-ами) метода setter, устанавливая каждое совпавшее свойство в значение совпадающего параметра.

Если параметр имеет значение "", соответствующее свойство не модифицируется.
paramИмя параметра запроса, значение которого Вы хотите дать свойству Bean'а. Имя параметра запроса приходит обычно от web-формы.

Если param опущен, принимается, что имя параметра запроса - то же самое, что и имя свойства Bean'а.
Если param не установлен в объекте Request или если он имеет значение ““, элемент jsp:setProperty не оказывает влияния (a noop - шо цэ такэ?).

Акция может не иметь атрибутов param и value.
value Значение, присваиваемое данному свойству.

Этот атрибут может принимать выражение атрибута времени запроса в качестве значения.

Акция может не иметь атрибутов param и value.

Содержание раздела