Tôi đang sử dụng lò xo có dấu freemarker làm công cụ tạo mẫu. Freemarker cho phép sử dụng JSP taglib, để bảo mật ví dụ, bằng cách thêmThêm thư viện mùa xuân để sử dụng Thẻ SIM JSP để bảo mật trong Freemarker
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
đến mẫu, những gì cho phép tôi sử dụng ví dụ
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
Nhưng, Spring/Freemarker không thể tìm thấy taglibs, trừ khi chúng được thêm vào đường dẫn lớp, vì vậy tôi đã thêm
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
vào tệp pom.xml trong dự án của tôi.
Nhưng dù sao, các thẻ không thể được tìm thấy! Tôi đã phải thêm spring-security-taglibs.jar vào thư mục WEB-INF/lib cho các thẻ được tìm thấy.
Có ai biết tại sao bình phải được thêm một cách rõ ràng vào thư mục lib không ?? Tại sao chúng không được tìm thấy bởi tomcat, trong trường hợp của tôi?
EDIT @ddekany
Cảm ơn bạn. Stacktrace là những điều sau đây, nếu vào mùa xuân-an ninh-taglibs.jar không được sao chép vào thư mục 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
...
Tôi nghĩ bạn nên bao gồm thông báo lỗi chính xác trong câu hỏi của mình. Ngoài ra, tôi không nghĩ rằng các đặc tả JSP sates rằng nó sẽ cho * taglibs * ('tld'-s) bằng cách sử dụng hiện tại (?) class-loader hoặc như vậy, nhưng tôi có thể sai trong đó. – ddekany