2012-01-09 12 views
39

Stavo lavorando su librerie di tag personalizzate ed ero confuso su come i tag <required> e <rtexprvalue> siano utilizzati nel file TLD per definire un attributo di tag personalizzato.A cosa servono gli standard <required> e <rtexprvalue>?

  1. Quali sono questi tag?
  2. Cosa dovremmo scrivere tra di loro?
  3. Quale comportamento otteniamo dopo aver scritto questi tag?
+0

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

risposta

62

required implica semplicemente quello che dice. L'attributo è obbligatorio o obbligatorio.

rtexprvalue significa Runtime Expression Value. Significa che l'attributo può supportare i valori dello scriptlet.

elexprvalue significa che può supportare i valori EL (linguaggio di espressione).

Quindi, se avete requiredattr definito come sia required=true e rtexprvalue=true e elattribute è definito come elexprvalue=true, è possibile scrivere come segue:

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

Grazie, mi riferirò nuovamente al codice e provalo! puoi dirmi cosa succederà se faccio rtexprvalue false ?? Cosa devo digitare nel file tag-lib tra il tag ?? – bali208

+0

In genere 'rtexprvalue' e' elexprvalue' vengono resi falsi solo quando non si desidera che gli utenti del taglib forniscano un valore di runtime. Ho visto gli attributi 'id' dichiarati come' false' in alcune librerie di tag. – adarshr

6

Il <rtexprvalue> elemento definito in un dominio di primo livello cattura il comportamento dinamico di un attributo . Il valore può essere true o false. Un valore falso nella colonna dinamica indica che può essere specificato solo un valore di stringa statico per l'attributo. Un valore true indica che è possibile specificare un valore dell'attributo time-time . Come definito nella specifica JSP, un "valore di attributo del tempo di richiesta" può essere un'espressione Java, un'espressione EL o un valore impostato da un <jsp:attribute>.

L'elemento <required> definisce se l'attributo di nidificazione è obbligatorio o facoltativo. Se non è presente, il valore predefinito è "falso", cioè l'attributo è facoltativo.