I was working on custom tag libraries and I was confused how the
and
tags are used in the TLD file to define a cus
The <rtexprvalue>
element defined in a TLD captures the dynamic behavior of an attribute. The
value can be either true or false. A false value in the dynamic column means that
only a static string value can be specified for the attribute. A true value means that a
request-time attribute value can be specified. As defined in the JSP specification, a
“request-time attribute value” can be either a Java expression, an EL expression, or a
value set by a <jsp:attribute>
.
The <required>
element defines if the nesting attribute is required or optional. If not present then the default is "false", i.e the attribute is optional.
required
quite simply implies what it says. The attribute is required or mandatory.
rtexprvalue
means Runtime Expression Value. It means the attribute can support scriptlet values.
elexprvalue
means it can support EL (expression language) values.
So, if you have requiredattr
defined as both required=true
and rtexprvalue=true
and elattribute
is defined as elexprvalue=true
, you can write as follows:
<myprefix:mytag requiredattr="<%=baz.getId()%>" elattribute="${foo.bar}"/>