Używam sprężyny z freemarkerem jako silnika szablonów. Freemarker pozwala używać JSP Taglibs, dla bezpieczeństwa, na przykład przez dodanieDodawanie biblioteki sprężynowej do używania tagów JSP w celu zabezpieczenia w Freemarker
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
do szablonów, co pozwala mi korzystać na przykład
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
Ale wiosna/Freemarker nie może znaleźć taglibs, chyba że są one dodawane do ścieżki klasy, więc dodałem
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
do mojego pom.xml w moim projekcie.
Ale w każdym razie nie można znaleźć tagów! Musiałem dodać plik spring-security-taglibs.jar do folderu WEB-INF/lib, aby można było znaleźć znaczniki.
Czy ktoś wie, dlaczego słoik musi być jawnie dodany do folderu lib? Dlaczego nie są znalezione przez kocur, w moim przypadku?
EDYTUJ @ddekany
Dziękuję. StackTrace jest następujący, jeśli sprężyna-security-taglibs.jar nie jest kopiowany do katalogu 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
...
Myślę, że powinieneś podać dokładny komunikat o błędzie w swoim pytaniu. Ponadto, nie sądzę, że specyfikacja JSP stwierdza, że szuka * taglibs * ('tld'-s) przy użyciu bieżącego (?) klasa-ładowacz, czy coś takiego, ale może jestem w tym zły. – ddekany