Для чего они существуют и используются?
Я работал над пользовательскими библиотеками тегов, и меня смутило, как теги <required>
и <rtexprvalue>
используются в файле TLD для определения атрибута пользовательского тега.
- Что это за метки? Что мы должны написать между ними?
- какое поведение мы получаем после написания этих тегов?
2 ответа:
required
довольно просто подразумевает то, что он говорит. Атрибут является обязательным или обязательным.
rtexprvalue
означает значение выражения времени выполнения. Это означает, что атрибут может поддерживать значения скриптлета.
elexprvalue
означает, что он может поддерживать значения EL (язык выражений).Итак, если у вас
requiredattr
определено какrequired=true
иrtexprvalue=true
иelattribute
определено какelexprvalue=true
, вы можете написать следующее:<myprefix:mytag requiredattr="<%=baz.getId()%>" elattribute="${foo.bar}"/>
Элемент
<rtexprvalue>
, определенный в TLD, отражает динамическое поведение атрибута. То значение может быть как истинным, так и ложным. Ложное значение в динамическом столбце означает, что для атрибута можно указать только статическое строковое значение. Значение true означает, что можно указать значение атрибута request-time. Как определено в спецификации JSP, a "запрос времени значения атрибута" может быть либо выражение Java, выражение, эль, или значение, заданное a<jsp:attribute>
.Элемент
<required>
определяет, если атрибут вложенности является обязательным или необязательным. Если нет, то значение по умолчанию - "false", то есть атрибут необязателен.