我们可以在jstl标签中有一个可选属性,具体取决于另一个属性吗?

时间:2010-11-20 09:18:02

标签: java tags jstl

之前我们有一个标签ifRole,以便

<op:ifRole role="role1">
   <li id="menu3SubMenu4">This will be shown only to the user with role1</li>
</op:ifRole>

在此标记中,我们有一个必填字段role和另一个可选字段secondaryRole。现在我添加了另一个可选属性excluding,以便

<op:ifRole excluding="role2">
   <li id="menu3SubMenu4">This will be shown to all users except the one with role=role2</li>
</op:ifRole>

此外,我将属性role从必需更改为可选。现在,我不希望任何人将此标记用作:

<op:ifRole excluding="role2" role="role1">

不应该允许这件事。一种方法是在提供这两个参数时在doStartTag中抛出异常。但我想要其他方式。

1 个答案:

答案 0 :(得分:3)

您可以将标记与javax.servlet.jsp.tagext.TagExtraInfo类关联,该类可以执行属性的运行时验证。这可能是一种比标记类本身更清晰的验证方式。

JavaEE教程涵盖了here