之前我们有一个标记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中引发异常。但是我想另辟round径。

最佳答案

您可以将标签与javax.servlet.jsp.tagext.TagExtraInfo类相关联,该类可以执行属性的运行时验证。与在标签类本身中进行验证相比,这也许是一种更清洁的验证方法。

JavaEE教程对此进行了介绍here

10-06 09:27