Можем ли мы иметь дополнительный атрибут в теге jstl в зависимости от другого атрибута? - PullRequest
1 голос
/ 20 ноября 2010

Ранее у нас был тег 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 Ответ

3 голосов
/ 20 ноября 2010

Вы можете связать свой тег с классом javax.servlet.jsp.tagext.TagExtraInfo, который может выполнять проверку атрибутов во время выполнения. Возможно, это более чистый способ проверки, чем в самом классе тегов.

Об этом рассказывается в руководстве JavaEE здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...