是否有可能做到这一点?我在这里尝试完成的是创建一个可扩展的 Struts 2 插件,该插件具有可定制的屏幕,以避免类似项目中的代码重复。
1896 次
2 回答
4
是的,这是可能的,但它与 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
于 2012-03-16T20:28:37.637 回答
0
如果 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
.
于 2018-12-20T06:49:47.233 回答