използвайки JSP taglibs в Grails 2.4.0

В моето приложение Grails 2.3.8 използвам плъгина Janrain, който включва JSP taglib. В горната част на моето оформление GSP декларирам

<%@ taglib prefix="janrain" uri="http://janrain4j.googlecode.com/tags" %>

След това мога да използвам този taglib в същия GSP с:

<janrain:signInLink styleClass="btn">Login Socially</janrain:signInLink>

Но след надграждане до Grails 2.4.0 сега получавам тази грешка

Unknown JSP tag janrain:signInLink. Stacktrace follows:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error applying layout : responsive
    at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
    at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

person Dónal    schedule 22.05.2014    source източник


Отговори (1)


Тази информация липсваше в бележките за надстройка на Grails 2.4. Сега добавих това: https://github.com/grails/grails-doc/commit/871eec21 , документи на сървър за изграждане.

JSP taglib tld файловете вече не се сканират по подразбиране. Това трябва да бъде конфигурирано с настройката grails.gsp.tldScanPattern. Приема низова стойност, разделена със запетая. PathMatchingResourcePatternResolver на Spring се използва за разрешаване на шаблоните.

Можете да получите предишното поведение, като добавите тази настройка към Config.groovy:

grails.gsp.tldScanPattern='classpath*:/META-INF/*.tld,/WEB-INF/tld/*.tld'

Стандартната библиотека JSTL вече не се добавя като зависимост. В случай, че използвате JSTL, трябва да добавите и тези зависимости:

   runtime 'javax.servlet:jstl:1.1.2'
   runtime 'taglibs:standard:1.1.2'
person Lari Hotari    schedule 22.05.2014
comment
Файлът c.tld, включен по подразбиране в приложението на grails, има описанието, че принадлежи към основната библиотека JSTL 1.2. Не трябва ли библиотеките JSTL 1.2 да бъдат включени вместо 1.1.2? - person Aakash; 23.09.2014
comment
Получавам грешка, след като добавих първия ред към Config и двете зависимости по време на изпълнение в BuildConfig Error | Разрешаване на грешки при получаване на зависимости: Следните артефакти не могат да бъдат разрешени: javax.servlet:jstl:zip:1.1.2, taglibs:standard:zip:1.1.2: Не може да се намери артефакт - person Viriato; 17.10.2014
comment
@Viriato, ако това се случи, вие сте добавили зависимостите към секцията 'plugins {' на BuildConfig. Те трябва да бъдат добавени към 'dependencies {'. - person Lari Hotari; 22.10.2014