Встраивание файлов тегов в JAR - PullRequest
3 голосов
/ 06 марта 2012

Возможно ли это сделать? Здесь я пытаюсь создать расширяемый плагин Struts 2 с настраиваемыми экранами, чтобы избежать дублирования кода в похожих проектах.

Ответы [ 2 ]

4 голосов
/ 17 марта 2012

Да, это возможно, но это не имеет никакого отношения к Struts 2: http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags6.html#wp90207 (в разделе «Файлы упакованных тегов»).

Вот пример: http://www.examulator.com/moodle/mod/resource/view.php?id=473

0 голосов
/ 20 декабря 2018

Цитирование шагов из этого источника (взято из предыдущего ответа) в случае изменения URL. (Самое простое решение, которое я нашел в интернете)

Для упаковки в тег jar (архив Java) требуется tld .

menu.tld находится в каталоге META-INF.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
                           "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>menutagfile</shortname>

    <uri>www.examulator.com/menutagfile</uri>
    <tag-file>
        <name>menu</name>
        <path>/META-INF/tags/menu.tag</path>
    </tag-file>
</taglib>

menu.tag находится в каталоге META-INF\tags.

<%@ tag body-content="tagdependent" %>
<%@ attribute name="menutext" rtexprvalue="true"%>

<h1>This is my tag file</h1>
<jsp:doBody/>

Команда для упаковки их в JAR (автоматическая упаковка в случае maven)

Jar cvf menutagfile.jar .\META-INF\*.*

Использование в родительском проекте

<%@ taglib prefix="mytagfile" uri="www.examulator.com/menutagfile" %>
<html>
<head>
<title>Demonstration of Tag Files</title>
</head>
<body>
<h1> What is going down? </h1>
<mytagfile:menu/>
</body>
</html>

Примечание : Если в вашем проекте нет папки META-INF, создайте ее внутри src/main/resources.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...