Как сделать так, чтобы плагин игнорировал все недоступные теги? - PullRequest
0 голосов
/ 05 января 2012

Я извлек все статические ресурсы (CSS, JS, IMG), просмотры (GSP) и i18n (сообщения * .properties) из моего основного Приложение Grails в отдельный плагин («myguiplugin»), чтобы обеспечить доступ для дизайнера внешнего интерфейса, сохраняя при этом конфиденциальность базовой логики.

Теперь работать с этим, как это было бы довольно сложно, так как плагин (очевидно) не работает правильно при запуске на своем собственном .

Основная причина - все вызовы тегов, которые недоступны. Примеры:

org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <sec:ifNotLoggedIn>
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <g:render>

Есть ли способ заставить grails просто игнорировать любую ошибку, подобную этой, чтобы иметь возможность отображать статические части приложения в браузере?

1 Ответ

0 голосов
/ 05 января 2012

Вы можете попробовать грубое переопределение метода GroovyPage.invokeTag() с помощью metaClass (именно это выдает это исключение в Grails 1.3), но я не уверен, что произойдет: D

Как:

def oldInvokeTag = GroovyPage.metaClass.invokeTag
GroovyPage.metaClass.invokeTag = { 
  String tagName, String tagNamespace, int lineNumber, Map attrs, Closure body ->

  try {
    // or do something more smart
    oldGormDelete.invoke(delegate, tagName, tagNamespace, lineNumber, attrs, body)
  }
  catch (e) {
    out.append("some unknown tag: $tagNamespace:$tagName")
  }
}
...