<required> 和 <rtexprvalue> 是做啥用的?
Posted
技术标签:
【中文标题】<required> 和 <rtexprvalue> 是做啥用的?【英文标题】:What are <required> and <rtexprvalue> used for?<required> 和 <rtexprvalue> 是做什么用的? 【发布时间】:2012-02-05 22:31:16 【问题描述】:我正在研究自定义标记库,我很困惑如何在 TLD 文件中使用 <required>
和 <rtexprvalue>
标记来定义自定义标记属性。
-
这些标签是什么?
我们应该在它们之间写些什么?
编写这些标签后我们会得到什么行为?
【问题讨论】:
docs.oracle.com/javaee/5/tutorial/doc/bnama.html#bnamh 【参考方案1】:required
很简单地暗示了它所说的内容。该属性是必需的或强制的。
rtexprvalue
表示运行时表达式值。这意味着该属性可以支持 scriptlet 值。
elexprvalue
表示它可以支持 EL(表达式语言)值。
因此,如果您将requiredattr
定义为required=true
和rtexprvalue=true
,并且elattribute
定义为elexprvalue=true
,则可以编写如下:
<myprefix:mytag requiredattr="<%=baz.getId()%>" elattribute="$foo.bar"/>
【讨论】:
谢谢,我会再次参考代码并尝试一下!你能告诉我如果我将 rtexprvalue 设为 false 会发生什么吗?我应该在rtexprvalue
和elexprvalue
只有在你不希望你的taglib 的用户提供运行时值时才设置为假。我在一些标签库中看到id
属性被声明为false
。【参考方案2】:
TLD 中定义的<rtexprvalue>
元素捕获属性的动态行为。这
值可以是真或假。动态列中的错误值意味着
只能为属性指定静态字符串值。一个真值意味着一个
可以指定请求时间属性值。正如 JSP 规范中定义的那样,一个
“请求时间属性值”可以是 Java 表达式、EL 表达式或
由<jsp:attribute>
设置的值。
<required>
元素定义嵌套属性是必需的还是可选的。如果不存在,则默认为“false”,即该属性是可选的。
【讨论】:
以上是关于<required> 和 <rtexprvalue> 是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章