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