【发布时间】:2012-02-05 22:31:16
【问题描述】:
我正在研究自定义标记库,我很困惑如何在 TLD 文件中使用 <required> 和 <rtexprvalue> 标记来定义自定义标记属性。
- 这些标签是什么?
- 我们应该在它们之间写些什么?
- 编写这些标签后我们会得到什么行为?
【问题讨论】:
标签: java jsp taglib custom-tag
我正在研究自定义标记库,我很困惑如何在 TLD 文件中使用 <required> 和 <rtexprvalue> 标记来定义自定义标记属性。
【问题讨论】:
标签: java jsp taglib custom-tag
required 很简单地暗示了它所说的内容。该属性是必需的或强制的。
rtexprvalue 表示运行时表达式值。这意味着该属性可以支持 scriptlet 值。
elexprvalue 表示它可以支持 EL(表达式语言)值。
因此,如果您将requiredattr 定义为required=true 和rtexprvalue=true,并且elattribute 定义为elexprvalue=true,则可以编写如下:
<myprefix:mytag requiredattr="<%=baz.getId()%>" elattribute="${foo.bar}"/>
【讨论】:
rtexprvalue 和elexprvalue 只有在你不希望你的taglib 的用户提供运行时值时才设置为假。我在一些标签库中看到id 属性被声明为false。
TLD 中定义的<rtexprvalue> 元素捕获属性的动态行为。这
值可以是真或假。动态列中的错误值意味着
只能为属性指定静态字符串值。一个真值意味着一个
可以指定请求时间属性值。正如 JSP 规范中定义的那样,一个
“请求时间属性值”可以是 Java 表达式、EL 表达式或
由<jsp:attribute> 设置的值。
<required> 元素定义嵌套属性是必需的还是可选的。如果不存在,则默认为“false”,即该属性是可选的。
【讨论】: