2016-06-10 5 views
0

В старой дороге, мы помещаем заказ TagLib описание файла в WEB-INF/xxx.tld и JSP файлы загрузить этот файл с <%@taglib prefix="xxx" uri="/META-INF/xxx.tld"%>где поставить .TLD файл, используя загрузку весной и configged с полностью Java код

Когда мы используем Spring boot и полностью настраиваем приложение с помощью java-кода (без web.xml, xxx-servlet.xml и т. Д.), Куда его поместить?

Ресурсы/WEB-INF? или ресурсов/META-INF?

+0

Какой контейнер вы используете? Как вы упаковываете свое приложение (war? Jar?) –

+0

@BrianClozel Я собираюсь использовать Tomcat и упаковать приложение для войны – Jason

ответ

0

До тех пор, пока вы знаете о различных JSP limitations, Spring Boot прилипает как можно больше к «старому пути».

В этом конкретном случае я не думаю, что Spring Boot вообще участвует в загрузке пользовательских TLD, а скорее в работе контейнера. Не стесняйтесь размещать его там, где он должен находиться в обычных приложениях WAR, и поднимать проблему в команду Spring Boot с репродуцированным проектом, если это не работает.

+0

Я обнаружил, что военный пакет будет генерировать папку «WEB-INF», поэтому я поставил «xxx» .tld "в папке ресурсов и измените объявление taglib на <% @ taglib prefix =" xxx "uri ="/WEB-INF/classes/xxx.tld "%>, в STS нет ошибки компиляции (нет если он работает хорошо после запуска), не уверен, что это правильный путь – Jason

1

Просто оставьте свой tld в/src/main/webapp/WEB-INF/и обратитесь к нему из своего jsp, используя uri.

Пример TLD находится в/SRC/главная/веб-приложение/WEB-INF/

<?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 /> 

Надеюсь, это поможет!