Есть ли способ ограничить использование пользовательского тега, чтобы его можно было использовать только внутри определенного тега? - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть тег <filter:filters> и тег <filter:filter>.Это пользовательские теги JSP.Есть ли способ указать, что тег <filter:filter> нельзя использовать изолированно и что он может использоваться только как дочерний элемент тега <filter:filters>?

1 Ответ

3 голосов
/ 06 октября 2011

Кажется, что нет декларативного / TLD способа сделать это.

JSP 2.0 позволяет реализовать переводчик времени перевода, расширив класс javax.servlet.jsp.tagext.TagLibraryValidator и реализовав сообщение проверки.

Вы также можете сделать это во время выполнения с помощью метода SimpleTag.getParent () и вызвать исключение, если родительский тип имеет неправильный тип.

Это может выглядеть примерно так:

public void doTag() {
   if (!(getParent() instanceof Filters)) 
      throw new Exception("A filter can only be used inside a filters tag.");
}
...