Spring Security,JSP 标记库错误

Posted

技术标签:

【中文标题】Spring Security,JSP 标记库错误【英文标题】:Spring Security, JSP Tag Lib Error 【发布时间】:2014-03-17 22:27:57 【问题描述】:

我想在我的 JSP 文件中包含 spring 安全标签(意味着在 JSP taglib scriptlet 中),所以我在我的 JSP 中添加了以下行 taglib prefix="security" uri="http://www.springframework.org/security/tags"(在JSP标签库中)

但我收到以下错误 home.jsp:2:5:找不到带有此 URI 的标记库。可能的原因可能是 URI 不正确,或者解析 .tld 文件时出错。

<dependency>
    <groupId>org.springframework.security</groupId>
     <artifactId>spring-security-web</artifactId>
     <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

【问题讨论】:

【参考方案1】:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

这些对我有用

 <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>$spring.security.version</version>
            <scope>$defaultScope</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>$spring.security.version</version>
            <scope>$defaultScope</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>$spring.security.version</version>
            <scope>$defaultScope</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>$spring.security.version</version>
            <scope>$defaultScope</scope>
        </dependency>

其中 spring.security.version = 3.1.4.RELEASE。

并确保您已包含正确的 jst jar。

【讨论】:

不,它对我不起作用 :( 但感谢您的建议以及我正在使用 webLogic 服务器的另一件事,我们还需要对 web.xml 文件进行任何更改 我发现这不是一个好方法,但它对我有什么作用【参考方案2】:

Gradle,添加到 build.gradle

compile "org.springframework.security:spring-security-taglibs:$springSecurityVersion"

compile "org.springframework.security:spring-security-taglibs:3.2.0.RELEASE"

或你的版本

【讨论】:

【参考方案3】:

我发现其他方法不是一个好方法,但它对我的工作方式如何,我已将所有 .class 复制到 /WEB-INF/class 并将 .tld 文件复制到 /WEB-INF 和当我部署项目时,我使用的是

【讨论】:

以上是关于Spring Security,JSP 标记库错误的主要内容,如果未能解决你的问题,请参考以下文章

找不到 Spring Security 标记库

添加“spring-security-taglibs”后jsp中仍然报错:找不到spring security标签的标签库描述符

Spring Security 授权标签 - HTTP 状态 500

如何在jsp中为spring security auth异常显示自定义错误消息

Spring Security UserNotFoundException 在带有 JSP 视图模板的 Spring Boot 中不显示错误消息

spring security 在重定向到 logout.jsp 时给出错误