JSP实现自定义标签Taglib重点总结
2014-04-02 15:14
399 查看
Taglib指令介绍
Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。比如struts中支持的标签库,html标签库、bean标签库、logic标签库。
其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习
资料。
除了struts的标签库,我们常见还有jstl标签库。
这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。
[html] view
plaincopyprint?
<%@ taglib prefix ="bean" uri= "http://struts.apache.org/tags-bean" %>
<%@ taglib prefix ="logic" uri= "http://struts.apache.org/tags-logic" %>
<%@ taglib prefix ="html" uri= "http://struts.apache.org/tags-html" %>
<%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>
自定义标签库优点
[align=left][/align][align=left]在jsp1.1版本中就增加了自定义标签库。自定义标签库可以看作一种优秀的组件。在自定义标签库中,我们可以把复杂的业务逻辑功能都封装在标签库中了。而不必在jsp中写具体的代码。这样,jsp代码与java编码能力不必强制耦合在一起。[/align]
[align=left]提到jsp版本的问题,我们首先应该确定我们jsp版本,因为版本不同,标签库文件引入的头文件不同,并且其中的标签也有差异。[/align]
[align=left]
[/align]
如何查看我们使用的jsp版本或servlet版本
[align=left][/align][align=left]打开tomcat下lib文件下的jsp-api.jar下的/META-INF/MANIFEST.MF文件,查看jsp版本。[/align]
[align=left]
[/align]
[align=left]因为我已经导入eclispe中,图如下:[/align]
![](http://img.my.csdn.net/uploads/201302/04/1359984430_4416.png)
[align=left] [/align]
![](http://img.my.csdn.net/uploads/201302/04/1359984440_6488.png)
[align=left]lib文件下的servlet-api.jar下的/META-INF/MANIFEST.MF文件,查看servlet版本[/align]
[align=left]
[/align]
[align=left]因为我已经导入eclispe中,图如下:[/align]
![](http://img.my.csdn.net/uploads/201302/04/1359984453_1781.png)
[align=left] [/align]
![](http://img.my.csdn.net/uploads/201302/04/1359984466_1058.png)
[align=left]
[/align]
Jsp2新增的特性
[align=left][/align][align=left]上述图中jsp版本是2.2,servlet版本是3.0。目前servlet3.0对应的是jsp2.2规范,但是一般情况下,我们把jsp2.0与jsp2.2都统称为jsp2.[/align]
[align=left]
[/align]
[align=left]如果我们使用jsp2,则web.xml使用的是servlet2.4以上的版本。那我们看一下web.xml对应的头文件:[/align]
[align=left]新增的特性是:[/align]
[html] view
plaincopyprint?
<web-app version= "2.4"
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-app_2_4.xsd" >
</web-app>
[align=left]1.直接配置jsp的属性[/align]
[align=left]
[/align]
[align=left]比如在web.xml中配置:[/align]
[html] view
plaincopyprint?
< jsp-config>
<jsp-property-group >
<!-- 对那些文件进行应用 -->
<url-pattern >*. jsp</ url-pattern>
<!-- 忽略el表达式 -->
<el-ignored >true </el-ignored >
</jsp-property-group >
</ jsp-config>
[align=left] 当然还有很多功能:[/align]
[align=left] [/align]
![](http://img.my.csdn.net/uploads/201302/04/1359984524_9243.png)
[align=left]2.表达式语言[/align]
[align=left]
[/align]
[align=left]表达式语言,就是使用el表达式。[/align]
[align=left]
[/align]
[align=left]3.使用TagFile[/align]
[align=left]
[/align]
[align=left]使用TagFile可以代替标签处理类和库文件。[/align]
[align=left]
[/align]
jsp1和jsp2的标签库文件中的头文件
[align=left][/align]
[align=left]jsp1的标签文件的头文件:[/align]
[html] view
plaincopyprint?
<?xml version="1.0" encoding= "UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
[align=left]根据后缀dtd,知道这是引入dtd文件,但是这具体表示什么意思呢?[/align]
[align=left]
[/align]
若是引入dtd文件,则使用DOCTYPE 这种形式。但是 PUBLIC "-//Sun
Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"是什么意思呢?
[align=left]根据xml中,如何引入dtd文件?引入dtd文件有以下形式:[/align]
[align=left]
[/align]
[align=left]1.在xml文档内部引入dtd[/align]
[html] view
plaincopyprint?
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
[align=left] [/align]
2.在xml文档引入外部dtd文件
[html] view
plaincopyprint?
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
[align=left]在文档类型声明时,用管间质SYSTEM或PUBLIC来指出外部DTD文件的位置[/align]
[align=left]用system关键字,如下:<!DOCTYPE 根元素的名字 SYSTEM "外部DTD文件的URI">[/align]
[align=left]用public如下:<!DOCTYPE 根元素的名字 PUBLIC "DTD的名字" "外部DTD文件的URI">[/align]
[align=left]一般用system关键字来形容是私有的dtd文件。[/align]
[align=left]而public关键字来形容的是公共的dtd文件。public形式,首先默认的根据dtd的名字来寻找dtd文件,找不到,则会根据dtd文件的uri寻找文件。[/align]
[align=left]jsp2中标签文件的头文件如下:其中是使用的schema形式而不是dtd文件。[/align]
[html] view
plaincopyprint?
<?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"></taglib>
标签库文件位置
把tld文件放在WebContent目录下或其子目录下。这样的话,web.xml不用配置其位置即可。tomcat直接读取webcontent下的tld文件。
自定义标签的实现
这部分内容,自己具体的不展示了
相关文章推荐
- JSP实现自定义标签Taglib重点总结
- JSP实现自定义标签Taglib重点总结
- JSP自定义标签Taglib实现过程重点总结
- JSP自定义标签Taglib实现过程重点总结
- 自定义JSP中的Taglib标签之四自定义标签中的Function函数
- 自定义JSP中的Taglib标签之一简单入门篇(无参数的自定义标签)
- 自定义JSP中的Taglib标签之二带自定义属性的标签
- 自定义JSP中的Taglib标签之五自定义标签之SimpleTagSupport使用
- [教程]自定义JSP中的Taglib标签之二带自定义属性的标签
- javaweb学习总结(二十三)——jsp自定义标签开发入门
- 自定义JSP标签实现语言国际化(类似struts text标签),并同时支持图片、JS文件国际化
- JavaWeb学习总结(二十三)——jsp自定义标签开发入门
- 自定义JSP中的Taglib标签之四自定义标签中的Function函数
- 使用BodyTagSupport类实现Jsp自定义标签
- 通过servlet.jsp.tagext.TagSupport的自定义标签实现按钮权限控制
- JSP实现用于自动生成表单标签html代码的自定义表单标签
- 【Java.Web】JSP —— 标签库taglib —— 自定义JSP标签 —— 其他
- 自定义JSP中的Taglib标签之一简单入门篇(无参数的自定义标签)