Как я могу ограничить пользовательскую привязку тега taglib к одному на страницу?

#grails #tags #taglib

#grails #Теги #taglib

Вопрос:

Например, когда я хочу, <custom:footer/> чтобы было невозможно появляться несколько раз на одной странице.

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить свой вариант использования

Ответ №1:

Каждый раз, когда вызывается тег, устанавливайте атрибут в контексте страницы. Если атрибут уже присутствует, это означает, что тег уже был вызван для текущей страницы, поэтому генерируйте исключение. Что-то вроде этого (непроверенное)

 class MyTagLib {

   def doIt = { attrs, body ->

       if (pageScope.invoked) {
           // throwTagError is a built-in method that is available in all tag libs
           thowTagError "this tag can only be invoked once per page"
       }

       pageScope.invoked = true

      // Now cure world poverty or whatever it is that your tag is supposed to do
   }
}