加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

JSP自定义标签Taglib实现过程要点总结

发布时间:2023-07-15 14:25:10 所属栏目:教程 来源:
导读:Taglib指令介绍

Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。

比如struts中支持的标签库,html标签库、bean标签库、logic标签库。

其中的具体的实现方式,我们不过多介绍,我们给大家从宏
Taglib指令介绍
 
Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。
 
比如struts中支持的标签库,html标签库、bean标签库、logic标签库。
 
其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习资料。
 
除了struts的标签库,我们常见还有jstl标签库。
 
这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。
 
复制代码 代码如下:
 
<%@ 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" %>
 
自定义标签库优点
 
在jsp1.1版本中就增加了自定义标签库。自定义标签库可以看作一种优秀的组件。在自定义标签库中,我们可以把复杂的业务逻辑功能都封装在标签库中了。而不必在jsp中写具体的代码。这样,jsp代码与java编码能力不必强制耦合在一起。
 
提到jsp版本的问题,我们首先应该确定我们jsp版本,因为版本不同,标签库文件引入的头文件不同,并且其中的标签也有差异。
 
打开tomcat下lib文件下的jsp-api.jar下的/META-INF/MANIFEST.MF文件,查看jsp版本。
 
因为我已经导入eclispe中,

lib文件下的servlet-api.jar下的/META-INF/MANIFEST.MF文件,查看servlet版本
 
因为我已经导入eclispe中,
 
Jsp2新增的特性
 
上述图中jsp版本是2.2,servlet版本是3.0。目前servlet3.0对应的是jsp2.2规范,但是一般情况下,我们把jsp2.0与jsp2.2都统称为jsp2.
 
如果我们使用jsp2,则web.xml使用的是servlet2.4以上的版本。那我们看一下web.xml对应的头文件:
 
新增的特性是:
 
复制代码 代码如下:
 
<web-app version= "4"
 
xmlns="http://javasuncom/xml/ns/j2ee"
 
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee
 
http://javasuncom/xml/ns/j2ee/web-app_2_xsd" >
 
</web-app>
 
1.直接配置jsp的属性
 
比如在web.xml中配置:
 
复制代码 代码如下:www.CuoXIn.com
 
< jsp-config>
 
<jsp-property-group >
 
<!--  对那些文件进行应用 -->
 
<url-pattern >* jsp</ url-pattern>
 
<!-- 忽略el表达式 -->
 
<el-ignored >true </el-ignored >
 
</jsp-property-group >
 
</ jsp-config>
 
当然还有很多功能:
 
2.表达式语言
 
表达式语言,就是使用el表达式。
 
3.使用TagFile
 
使用TagFile可以代替标签处理类和库文件。
 
jsp1和jsp2的标签库文件中的头文件
 
jsp1的标签文件的头文件:
 
复制代码 代码如下:
 
<?xml version="0" encoding= "UTF-8"?>
 
<!DOCTYPE taglib
 
PUBLIC "-//Sun Microsystems, Inc//DTD JSP Tag Library 1//EN"
 
"http://javasuncom/j2ee/dtds/web-jsptaglibrary_1_dtd">
 
根据后缀dtd,知道这是引入dtd文件,但是这具体表示什么意思呢?
 
若是引入dtd文件,则使用DOCTYPE 这种形式。但是 PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"是什么意思呢?
 
根据xml中,如何引入dtd文件?引入dtd文件有以下形式:
 
1.在xml文档内部引入dtd
 
复制代码 代码如下:www.CuoXIn.com
 
<?xml version="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>
 
2.在xml文档引入外部dtd文件
 
复制代码 代码如下:
 
<?xml version="0"?>
 
<!DOCTYPE note SYSTEM "notedtd">
 
<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)>
 
在文档类型声明时,用管间质SYSTEM或PUBLIC来指出外部DTD文件的位置
 
用system关键字,如下:<!DOCTYPE 根元素的名字 SYSTEM "外部DTD文件的URI">
 
用public如下:<!DOCTYPE 根元素的名字 PUBLIC "DTD的名字" "外部DTD文件的URI">
 
一般用system关键字来形容是私有的dtd文件。
 
而public关键字来形容的是公共的dtd文件。public形式,首先默认的根据dtd的名字来寻找dtd文件,找不到,则会根据dtd文件的uri寻找文件。
 
jsp2中标签文件的头文件如下:其中是使用的schema形式而不是dtd文件。
 
复制代码 代码如下:w
 
<?xml version="0" encoding="UTF-8" ?>
 
<taglib xmlns="http://javasuncom/xml/ns/j2ee"
 
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee http://javasuncom/xml/ns/j2ee/web-jsptaglibrary_2_xsd"
 
version="0"></taglib>
 
标签库文件位置
 
把tld文件放在WebContent目录下或其子目录下。这样的话,web.xml不用配置其位置即可。tomcat直接读取webcontent下的tld文件。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!