Estoy usando la primavera con freemarker como motor de plantilla. Freemarker permite utilizar la JSP Taglibs, para la seguridad, por ejemplo, mediante la adición deAgregar biblioteca de primavera para el uso de JSP Taglibs para seguridad en Freemarker
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
a las plantillas, lo que me permite utilizar por ejemplo
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
Pero, Primavera/Freemarker No puedo encontrar las taglibs, a menos que se añaden a la ruta de clases, por lo que añade
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
a mi pom.xml en mi proyecto.
Pero de todos modos, ¡no se encontraron las etiquetas! Tuve que agregar spring-security-taglibs.jar en la carpeta WEB-INF/lib para encontrar las etiquetas.
¿Alguien sabe por qué el jar se tiene que agregar explícitamente en la carpeta lib? ¿Por qué no son encontrados por Tomcat, en mi caso?
EDITAR @ddekany
Gracias. El StackTrace es la siguiente, si el spring-security-taglibs.jar no se copia en el directorio WEB-INF/lib
No mapping defined for http://www.springframework.org/security/tags
The problematic instruction: ---------- ==> assignment:
security=JspTaglibs["http://www.springframework.org/security/tags"]
[on line 12, column 1 in home.ftl] in user-directive content.main
[on line 8, column 9 in home.ftl] in user-directive layout.global
[on line 2, column 1 in home.ftl]
---------- Java backtrace for programmers: ----------
freemarker.template.TemplateModelException:
No mapping defined for http://www.springframework.org/security/tags at
freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:180) at
...
Creo que debería incluir el mensaje de error exacto en su pregunta. Además, no creo que la especificación JSP indique que busca * taglibs * ('tld'-s) utilizando la corriente (?) cargador de clase o tal, pero tal vez estoy equivocado en eso. – ddekany