在使用spring boot并使用完全java代码进行配置时将.tld文件放在何处

时间:2016-06-10 17:13:58

标签: jsp spring-boot taglib

以旧方式,我们将自定义taglib描述文件放在WEB-INF / xxx.tld中,JSP文件使用<%@taglib prefix="xxx" uri="/META-INF/xxx.tld"%>

加载此文件

当我们使用Spring启动并使用java代码(没有web.xml,xxx-servlet.xml等)完全配置应用程序时,在哪里放置它?

在资源/ WEB-INF下?或资源/ META-INF?

2 个答案:

答案 0 :(得分:2)

将你的tld放入/ src / main / webapp / WEB-INF /并使用uri从你的jsp引用它。

位于/ src / main / webapp / WEB-INF /

中的tld示例
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">

    <description>Example Tag Library</description>
    <tlib-version>4.0</tlib-version>
    <short-name>example</short-name>
    <uri>http://www.example.org/tags</uri>

    <tag>
       <name>exampleTag</name>
       <tag-class>com.example.taglib.ExampleTag</tag-class>
       <body-content>empty</body-content>
    </tag>
</taglib>

从JSP文件引用标记库的示例:

<%@ taglib prefix="ex" uri="http://www.example.org/tags"%>

当然,使用自定义标签:

<ex:exampleTag />

希望它有所帮助!

答案 1 :(得分:0)

只要您了解各种JSP limitations,Spring Boot就会尽可能地坚持使用#34;旧方式&#34;。

在这种特殊情况下,我并不认为Spring Boot会加载自定义顶级域名,而是容器的工作。随意将它放在常规WAR应用程序中的位置,并在没有工作的情况下通过repro项目向Spring Boot团队提出问题。