2012-01-09 3 views
39

Я работал над пользовательскими библиотеками тегов, и я был смущен тем, как теги <required> и <rtexprvalue> используются в файле TLD для определения атрибута пользовательского тега.Что такое <required> и <rtexprvalue>?

  1. Что это за теги?
  2. Что мы должны писать между ними?
  3. Какое поведение мы можем получить после написания этих тегов?
+0

https://docs.oracle.com/javaee/5/tutorial/doc/bnama.html#bnamh – user2418306

ответ

62

required просто означает, что он говорит. Атрибут является обязательным или обязательным.

rtexprvalue означает значение выражения времени выполнения. Это означает, что атрибут может поддерживать значения сценария.

elexprvalue означает, что он может поддерживать значения EL (язык выражения).

Итак, если у вас есть requiredattr определяется как как required=true и rtexprvalue=true и elattribute определяется как elexprvalue=true, вы можете написать следующим образом:

<myprefix:mytag requiredattr="<%=baz.getId()%>" elattribute="${foo.bar}"/> 
+0

Спасибо, я снова переуступлю код и попробую! вы можете сказать мне, что произойдет, если я сделаю rtexprvalue false ?? Что я должен набирать в файле tag-lib между тегом ? – bali208

+0

Как правило, 'rtexprvalue' и' elexprvalue' становятся только ложными, если вы не хотите, чтобы пользователи вашего taglib предоставляли значение времени выполнения. Я видел, что атрибуты 'id' объявляются как' false' в некоторых библиотеках тегов. – adarshr

6

<rtexprvalue> элемент, определенный в TLD отражает динамическое поведение атрибута , Значение может быть истинным или ложным. Фальшивое значение в динамическом столбце означает, что для атрибута может быть указано только статическое строковое значение. Истинное значение означает, что может быть задано значение атрибута времени запроса . Как определено в спецификации JSP, значение атрибута «время запроса времени» может быть выражением Java, выражением EL или значением , установленным <jsp:attribute>.

Элемент <required> определяет, требуется ли атрибут вложенности или необязательный. Если нет, то по умолчанию «false», то есть атрибут является необязательным.