tag lib fmt ejemplo java jsp taglib custom-tag

java - fmt - tag lib jstl



¿Para qué se utilizan<required> y<rtexprvalue>? (2)

Estaba trabajando en bibliotecas de etiquetas personalizadas y estaba confundido sobre cómo se usan las etiquetas <required> y <rtexprvalue> en el archivo TLD para definir un atributo de etiqueta personalizado.

  1. ¿Cuáles son estas etiquetas?
  2. ¿Qué deberíamos escribir entre ellos?
  3. ¿Qué comportamiento obtenemos después de escribir estas etiquetas?

El elemento <rtexprvalue> definido en un TLD captura el comportamiento dinámico de un atributo. El valor puede ser verdadero o falso. Un valor falso en la columna dinámica significa que solo se puede especificar un valor de cadena estática para el atributo. Un valor verdadero significa que se puede especificar un valor de atributo de tiempo de solicitud. Tal como se define en la especificación JSP, un "valor de atributo de tiempo de solicitud" puede ser una expresión Java, una expresión EL o un valor establecido por un <jsp:attribute> .

El elemento <required> define si el atributo de anidación es obligatorio u opcional. Si no está presente, el valor predeterminado es "falso", es decir, el atributo es opcional.


required simplemente implica lo que dice. El atributo es obligatorio u obligatorio.

rtexprvalue significa valor de expresión en tiempo de ejecución. Significa que el atributo puede admitir valores scriptlet.

elexprvalue significa que puede soportar valores EL (lenguaje de expresión).

Por lo tanto, si tiene requiredattr definido como required=true y rtexprvalue=true y elattribute se define como elexprvalue=true , puede escribir de la siguiente manera:

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