Для чего нужны <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", то есть атрибут является необязательным.