2012-01-09 6 views
39

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.¿Para qué se usan <required> y <rtexprvalue>?

  1. ¿Qué son estas etiquetas?
  2. ¿Qué debemos escribir entre ellos?
  3. ¿Qué comportamiento obtenemos después de escribir estas etiquetas?
+0

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

Respuesta

62

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 admitir valores de EL (lenguaje de expresión).

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

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

¡Gracias, volveré a consultar el código una vez más y lo probaré! ¿Puede decirme qué pasará si hago que rtexprvalue sea falso? ¿Qué debo escribir en el archivo tag-lib entre la etiqueta ? – bali208

+0

En general, 'rtexprvalue' y' elexprvalue' solo se convierten en falsos cuando no desea que los usuarios de su taglib proporcionen un valor de tiempo de ejecución. He visto los atributos 'id' que se declaran como' false' en algunas bibliotecas de etiquetas. – adarshr

6

El elemento <rtexprvalue> definida en un dominio de nivel superior 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 <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.