通过Spring Boot在JSP中使用自定义标签文件

我有一个Spring Boot" title="Spring Boot">Spring Boot项目,正在尝试在JSP文件中进行以下调用:

<%@ taglib prefix="tagz" tagdir="/WEB-INF/tags" %>

<tagz:utils tabs="true"/>

标签文件夹位于-

\ src \ main \ resources \ WEB-INF \ tags

JSP文件文件夹位于-

\ src \ main \ resources \ META-INF \ resources \ WEB-INF \ jsp

我还定义了application.properties文件以包括:

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

如果我尝试将标签文件夹放在除Intellij之外的任何其他类路径中,则会显示错误,该错误无法在编辑器中识别该调用。

如果删除taglib调用,将正确显示JSP页面。

我的pom.xml当然具有以下依赖关系:

 <dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.5.4.RELEASE</version>

<exclusions>

<exclusion>

<artifactId>spring-boot-starter-tomcat</artifactId>

<groupId>org.springframework.boot</groupId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<version>8.5.15</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>3.0-alpha-1</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

我收到以下错误:

白标错误页面

此应用程序没有针对/ error的显式映射,因此您将其视为后备。

Sun Jun 25 16:12:47 IDT 2017发生意外错误(类型=内部服务器错误,状态= 500)。/WEB-

INF/jsp/main.jsp(行:[11],列:[4])在导入了前缀[tagz]的标签库中未定义标签[utils]

我认为这与Spring Boot中静态文件的配置有关,但是我尝试添加spring.resources.static-

locations=classpath:/resources/static/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/WEB-INF/tags/,classpath:/WEB-INF/

spring.mvc.static-path-pattern=/resources/**

似乎没有任何作用。我应该提到这些标签库工作正常!

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

有什么帮助吗?

回答:

因此,经过大量的反复试验,现在我将所有JSP文件放入路径中:

webapp/WEB-INF/jsp

标记以下文件:

webapp/WEB-INF/tags

Tlds文件位于:

webapp/WEB-INF/tld

当您在JSP内调用标记/ tld文件时,需要将它们引用到相对路径,例如:

<%@ taglib prefix="ui" tagdir="/WEB-INF/tags/ui" %>

您还需要在项目结构中定义Facet。如果没有定义,则意味着您需要通过在项目中添加“

Web框架”来生成它。它将生成web.xml,您需要将其放置webapp/WEB-INF在项目Facets 下并手动对其进行编辑。

希望这对看到这篇文章的人有所帮助。

以上是 通过Spring Boot在JSP中使用自定义标签文件 的全部内容, 来源链接: utcz.com/qa/424648.html

回到顶部