创建自己的taglib 并打包入jar

1. Create a TLD (tag library descriptor) file namedmy-tags.tld. For
more information, see Creating
a Tag Library Descriptor
.
例如:

<taglib>
    <display-name>Raptor JSP Taglib</display-name>
    <tlib-version>1.0</tlib-version>
    <jspversion>2.0</jspversion>
    <short-name>r</short-name>
    <uri>http://ebay.com/raptor</uri>
    <tag>
        <name>deferredFragment</name>
        <tagclass>com.ebay.raptor.fragment.jsp.DeferredFragmentTag</tagclass>
        <body-content>scriptless</body-content>
        <!--dynamic-attributes>true</dynamic-attributes-->
        <attribute>
            <name>afterRender</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>false</rtexprvalue>
        </attribute>
        <attribute>
            <name>beforeRender</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>false</rtexprvalue>
        </attribute>
        <attribute>
            <name>dependency</name>
            <type>Object</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>fragmentDependencies</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>delay</name>
            <type>int</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>timeoutFragment</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>timeoutURL</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>id</name>
            <type>String</type>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>inline</name>
            <type>boolean</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>outerElement</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>style</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>styleClass</name>
            <type>String</type>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

2. Create a directory containing the compiled Java tag handler class files used in your tag library.

3. Create
a sub-directory of the directory you created in step 2 and call it META-INF.

注意my-tag.tld必须放在META-INF里,这也是web container回去search tld文件的位置

4. Copy the my-tags.tld file
you created in step
1
 into the META-INF directory
you created in step
3

5. Archive your compiled Java class files into a jar file 

6.Copy the jar file
into the WEB-INF/lib directory of the Web application that uses your tag library.

有些文档说需要在web.xml 中提供对tag library 的引用才可以在JSP中使用,如下:

<taglib>
  <taglib-uri>myjar.tld</taglib-uri>
  <taglib-location>
     /WEB-INF/lib/myTagLibrary.jar
  </taglib-location>
</taglib>

但实际情况是,至少在Tomcat 和 Geronimo 服务器中,不需要上面的配置,服务器可以自己找到Jar里的tld文件,可能不同的服务器其实现不一样吧。

7.Reference the tag library
in your JSP. For example:

<%@ taglib prefix="r" uri="http://ebay.com/raptor"%>

<r:includeRaptorJS />

参考:

http://docs.oracle.com/cd/E15051_01/wls/docs103/taglib/admin.html#wp364493

http://www.ibm.com/developerworks/cn/java/j-jsp07233/index.html

时间: 2024-09-13 12:22:05

创建自己的taglib 并打包入jar的相关文章

在 lib 下新建一个目录放入 jar 包,tomcat访问不到

问题描述 在 lib 下新建一个目录放入 jar 包,tomcat访问不到 如在lib 下新建一个hibernate 的目录,将heibernate相关的jar包放到里面,编译时正常 ,但是在tomcat 环境下,找不到目录内的jar包. 将这些jar放到 lib目录下又可正常运行, 请问是需要配置哪些地方吗. 解决方案 设置jar包的lib目录 解决方案二: 首先,可以重新发布下项目,看看有没有问题,其次,再试试手动将这个jar添加到类路径下. 解决方案三: 要放到WEB-INF下面,你可以在

用命令行将Java程序打包为jar文件

如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包 jar cf JAR文件名称 程序文件名称或者程序所在的文件夹 举例: jar cf MyApp.jar D:JavaProjectMyApp 查看一个jar文件的内容 jar tvf JAR文件名称 举例: jar tvf MyApp.jar 将一个jar文件解压缩 jar xf JAR文件名称 举例: jar xf MyApp.jar 往压缩包里面增加文件 jar xf JAR文件名称 添加的文件或者其

有关java打包为jar文件的问题。

问题描述 我需要实现的功能为:将自己的工程打包为jar文件(之后还要生成exe文件).在这个jar包里需要导入其他外部jar包.这些jar包与我的jar包的格式大概是:./my.jar./a/b/1.jar./c/2.jar我的程序在eclipse上面跑没有问题,因为现在需要导入的这些jar包都是通过addexternaljar实现的.但是我不希望将这些导入的jar包一起打包在我的工程里.我需要他们是外部的jar包可以让我调用.不知道如何解决.等待回答~~~谢谢啦!~~ 解决方案 解决方案二:放

【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到

 接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!--<

java matlab-java调用MATLAB打包的jar,Java application调用成功,jsp调用失败,不知道为什么

问题描述 java调用MATLAB打包的jar,Java application调用成功,jsp调用失败,不知道为什么 报错如下: java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt710.dll, required by MATLAB Builder JA, on java.library.path com.mathworks.toolbox.javabuilder.internal.MCRConfigurat

如何将一个引入了library的项目打包成jar发给别人用,需要详细步骤及使用方法

问题描述 如何将一个引入了library的项目打包成jar发给别人用,需要详细步骤及使用方法 现在是有一个项目引入了两个library,要将这个项目打成jar包,放到另外一个项目中使用 解决方案 eclipse java ee工具为例: 右键点项目--export--选java下的Runnable JAR file 然后 看看导出的jar文件里 文件不是不全的,不是全的就换图片里的其他选项试试,总有一个会好的 其他的工具不熟悉 解决方案二: 先按楼上说的打包,然后用EXEJ4D等软件打包成EXE

android studio-如何将Android Studio 中的项目打包成jar文件,求方法

问题描述 如何将Android Studio 中的项目打包成jar文件,求方法 如题,求能用的方法,试了好多百度的方法,不怎么好用啊,越详细越好 解决方案 AS 生成Jar包 在Gradle中添加任务声明 def makeJar(String target, String classDir) { exec { executable "jar" //调用jar args "cvf", target args "-C", classDir args

java 打包成jar后无法运行(在eclipse下可以运行)???

问题描述 打包成jar后无法运行(在eclipse下可以运行)用java-jarxxx.jar命令可以运行!就是双击无法运行!以前可以双击运行重装JDK,后就无法双击运行了,但在eclipse下运行完全正常.请各位指点迷津!!! 解决方案 解决方案二:默认用Java-jar运行解决方案三:是这样的jar是不可以运行的,我们感觉它可以直接运行其实是可以用java打开,就像图片.视频可以双击打开一样.你重装java之后java.exe找不到了,所以就打不开了,你需要把%JAVA_HOME%bin加到

把matlab打包成jar在java中运行,小波变换运行不了

问题描述 把matlab打包成jar在java中运行,小波变换运行不了 为了使整个过程一体化因此将.m文件打包成jar,不过报错了: ERROR ... wfilters ---> Invalid wavelet file : dmey.mat {??? Error using ==> wfilters at 66 Invalid wavelet file : dmey.mat Error in ==> wavedec at 33 Error in ==> tezheng at 2