当前位置: 首页 > 知识库问答 >
问题:

在带有Spring Boot的JSP中使用自定义标记文件

索寒
2023-03-14

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

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

<tagz:utils tabs="true"/>

tags文件夹位于-

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

JSP文件夹在-

\s rc\main\资源\META-IN F\资源\WEB-IN F\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>

我得到以下错误:

白标错误页

应用程序没有针对/错误的显式映射,因此您将其视为回退。

Sun Jun 25 16:12:47 IDT 2017出现意外错误(类型=内部服务器错误,状态=500)/WEB-INF/jsp/main。jsp(行:[11],列:[4])在以前缀[tagz]导入的标记库中未定义标记[utils]

我认为这与Spring Boot中静态文件的配置有关,但我尝试添加Spring。资源。静态-

locations=classpath:/resources/static/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/WEB-INF/tags/,classpath:/WEB-INF/
spring.mvc.static-path-pattern=/resources/**

似乎没有什么工作。我应该提到这些taglib正在正常工作!

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

有什么帮助吗?

共有1个答案

包永新
2023-03-14

因此,经过大量的跟踪和错误,我现在将所有JSP文件放在路径内:

webapp/WEB-INF/jsp

将文件标记在:

webapp/WEB-INF/tags

和Tlds文件里面:

webapp/WEB-INF/tld

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

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

您还需要在项目结构中定义一个方面。如果您没有定义它,这意味着您需要通过向项目中添加“web框架”来生成它。它将生成web。xml,您需要将其放在webapp/WEB-INF下,并在项目方面进行手动编辑。

希望这能帮助任何看到这篇文章的人。

 类似资料:
  • 我正在创建一个自定义JSP标记,以从数据对象生成表。为了使代码更简洁,我想为行创建一个单独的标记文件,但我似乎无法在我的主自定义标记中包含自定义标记(抱歉,我知道这很混乱)。 例如我有: 桌子标签: 一行标签 注意第一个文件中的导入(<代码> 我试图将导入更改为<代码> 我做错了什么?

  • 我想用自定义标记制作地图。在APIV2中,我可以为标记设置图标、标题等。但我想在一开始就显示带有标记的标题。现在标题显示只有当我磁带标记。在v1中是覆盖,但在v2中我没有发现任何类似的东西。 编辑:也许我说得不够清楚。API中类似的东西只对一个标记起作用。我无法同时显示所有标记的信息窗口。无论如何,我需要显示我的所有标记的标题,而不等待用户将点击它。

  • 我在jsp文件“无法加载pkg.Handler类”中遇到了错误。我不明白问题出在哪里,一切似乎都很好。 下面是我的标签库描述符(tLD)文件 Handler.java文件 下面是jsp文件 以下是项目结构 项目结构截图

  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 主要内容:自定义标签的语法,简单示例,tld标签库描述文件,自定义标签属性,自定义标签的标签体自定义标签就是用户(开发者)自己定义的标签。自定义标签可以让 JSP 页面中不含有 Java 代码,只含有 HTML 代码和部分标签,就能实现业务逻辑的调用。 自定义标签的优点如下: 减少 JSP 页面对脚本的需求和依赖性 将 JSP 页面和业务逻辑分开,增加了程序的可维护性 可重复调用相同的业务逻辑,增加了程序的可重用性 使用自定义标签步骤如下: 自定义标签实现类 编写 tld 标签库描述文件

  • 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。 JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面。 JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。 你可以继承SimpleTa