テンプレートエンジンとしてfreemarkerで春を使用しています。Freemarker では、たとえば追加することで、セキュリティのために Jsp Taglibs を使用できます。
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
テンプレートに、たとえば使用できるもの
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
しかし、Spring/Freemarker は、クラスパスに追加されない限り、taglibs を見つけることができないので、追加しました
<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
ありがとうございました。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
...