今天遇到这样一个问题,使用JAVA做了个WEB应用,其中用到一个自定义标签。该标签的class文件与tld(tld文件中,uri定义为:http://wallimn.iteye.com/myfuncs)文件放在一起,
jsp页面中的引用方式为:
<%@ taglib prefix="wlm" uri="http://wallimn.iteye.com/myfuncs" %>
开始一直直接使用class文件,没有打jar包,运行的时候没有任何问题。
后来把应用部署到internet上,发现使用该标签的页面全部不能正常显示,我通过把两处的uri定义修改成非网址形式(wallimn:functions)把问题解决了,不过我没有搞清楚原因。希望读到此文的达人能指点一下。
再后来,我把所有的class文件,打成jar包,以jar的形式部署到WEB应用中,又出现了新的问题,原来能找到的tld文件找不到了。通过以绝对地址方式引用标签解决了这个问题。
即:
<%@ taglib prefix="wlm" uri="/WEB-INF/myfuncts.tld" %>
当然,要把myfuncts.tld放在对应的位置。
jar包与tld文件分开,不利于程序的部署、jar包重用。如何能把tld文件与class文件一起打到jar包中、且能正常运行呢?
分析了一下displaytag-1.2.jar的文件结构,发现它的tld文件是放在jar包中的META-INF目录中的。我打包时,也把tld文件放到META-INF目录中,测试运行,OK。
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2009-12-12
博客:http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
分享到:
相关推荐
这里的`prefix`定义了标签库的别名,`uri`则是TLD文件中定义的URI。 通过运行这个demo,你可以直观地了解TLD自定义标签的工作原理,以及它们如何与Java代码交互。如果你在学习过程中遇到困难,可以查阅与这个案例...
- `<taglib>`:根元素,包含整个TLD文件的元信息,如TLD的URI、短名称和描述。 了解`tags.tld`文件后,开发者可以更好地利用Struts2提供的标签来构建动态Web应用。通过阅读和理解TLD文件,我们可以知道每个标签的...
在JSP页面中,通过`<%@ taglib %>`指令引入TLD文件,指定URI,容器会根据URI找到对应的TLD,并使其中定义的标签可用。例如: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ``` 6....
EL是一种轻量级的脚本语言,常与JSTL一起使用,用于从请求作用域、会话作用域、应用作用域等获取和设置值。JSTL标签可以结合EL表达式,增强页面的动态性,如`${user.name}`可以获取名为"user"的请求参数的"name"属性...
这里的`prefix`是自定义标签库的别名,`uri`对应TLD文件中定义的`uri`,`myTag1`则是自定义标签的名称。 接着,我们需要编写标签处理类(`com.example.MyTag1`),这个类通常继承自`javax.servlet.jsp.tagext....
2. **fmt.tld与fmt-1_0.tld, fmt-1_0-rt.tld**: 这些文件代表了Format标签库,主要用于数据的格式化,如日期、数字的格式化,还有国际化和本地化的支持。 3. **fn.tld**: 这个文件代表了Function标签库,提供了很多...
在使用JSTL时,需要在JSP页面中引入对应的库,通过`<%@ taglib %>`指令指定`tld`文件的位置和URI。例如,引入JSTL核心库的指令如下: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ``...
这里的`taglib-uri`是JSTL标签库的URI,而`taglib-location`是指向TLD文件的路径。 4. **拷贝TLD文件**:将`tld`文件夹中的所有TLD文件(如`c.tld`, `fmt.tld`等)复制到`WEB-INF/tld`目录下。这是为了确保Web容器...
《深入理解libtld库:从URI中解析顶级域名》 libtld,全称“Top Level Domain Library”,是一款专为C语言设计的开源库,其核心功能是能够从统一资源标识符(URI)中有效地提取顶级域名(TLD)以及其他相关域名信息...
4. **配置Web.xml**:在`web.xml`配置文件中注册标签库,添加`<taglib>`元素,指定TLD的URI和标签库的别名。 使用`pager-tagl.tld`进行页面分页时,开发者只需要在JSP页面中引用这个标签库,并按照TLD中定义的属性...
这里`prefix="my"`是给标签库分配的别名,`uri="/WEB-INF/tlds/myTag.tld"`则是TLD文件的位置。 6. **Struts 2的TLD与Struts 1的区别**: 虽然Struts 2也支持自定义标签,但它不再使用TLD,而是使用SAX解析的`....
<%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %> ``` 这里...
- `<c:set>`:设置变量。 - `<c:remove>`:删除变量。 - `<c:forEach>`:用于循环遍历集合或数组。 - `<c:out>`:安全地输出值,防止XSS攻击。 **2. fmt.tld:** `fmt.tld`文件包含了Format标签库,主要用于格式化...
- `<c:set>`:设置变量。 - `<c:remove>`:删除变量。 - `<c:out>`:输出变量或表达式的值,可以防止XSS攻击。 - `<c:redirect>`和`<c:url>`:处理URL重定向和构建。 2. **fmt.tld**:这是JSTL Format库的`.tld...
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ``` 然后就可以在页面中使用JSTL标签,如: ```jsp ${list}" var="item"> ${item.name} ``` **JSTL的优势** JSTL的主要优势在于它使得JSP...
在`tld`文件中,可以设置标签的默认属性,比如每页显示的记录数、总页数计算方式等。在实际使用时,可以通过标签的属性进行个性化配置,以适应不同的需求。 5. **与后端交互** `pager-taglib`标签通常需要与后端...
libtld用于从世界任何地方的任何URI中提取TLD。 该库可以识别所有TLD,无论TLD包含多少级别(即.com有1个级别,.au最多有4个级别,例如.schools.nsw.edu.au),该库都可以提取它。 该库适用于C,C ++和PHP。
- `<uri>`:用于标识标签库的URI。 - `<tag>`:定义自定义标签。 - `<tag-class>`:自定义标签处理器类的全限定名。 - `<body-content>`:标签的主体内容类型。 - `<attribute>`:描述标签的属性。 4. **标签...
`URI`和`prefix`(前缀)用于引用标签库,如`<%@ taglib prefix="myTags" uri="/WEB-INF/tags.tld" %>`。 4. **标准标签库**:Java社区还提供了一些预定义的标签库,如JSTL(JavaServer Pages Standard Tag Library...