我正在使用带有freemarker的spring作为模板引擎。Freemarker 允许使用 Jsp Taglibs,例如,通过添加
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
到模板,例如允许我使用什么
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
但是,Spring/Freemarker 找不到标记库,除非它们被添加到类路径中,所以我添加了
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
到我项目中的 pom.xml 。
但是无论如何,标签都找不到!我必须将 spring-security-taglibs.jar 添加到 WEB-INF/lib 文件夹中才能找到标签。
有人知道为什么必须将 jar 显式添加到 lib 文件夹中吗?就我而言,为什么它们没有被tomcat找到?
编辑@ddekany
谢谢你。stacktrace如下,如果没有将spring-security-taglibs.jar复制到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
...