JSP自界说标签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版本,因为版本差异,标签库文件引入的头文件差异,而且个中的标签也有差别。

如何查察我们利用的jsp版本或servlet版本

打开tomcat下lib文件下的jsp-api.jar下的/META-INF/MANIFEST.MF文件,查察jsp版本。

因为我已经导入eclispe中,图如下:

JSP自定义标签Taglib实现历程重点总结

JSP自定义标签Taglib实现历程重点总结


 

lib文件下的servlet-api.jar下的/META-INF/MANIFEST.MF文件,查察servlet版本

因为我已经导入eclispe中,图如下:

JSP自定义标签Taglib实现历程重点总结

JSP自定义标签Taglib实现历程重点总结

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
" >
</web-app>


1.直接设置jsp的属性

好比在web.xml中设置:

复制代码 代码如下:


< jsp-config>
<jsp-property-group >
<!--  对那些文件举办应用 -->
<url-pattern >* jsp</ url-pattern>
<!-- 忽略el表达式 -->
<el-ignored >true </el-ignored >
</jsp-property-group >
</ jsp-config>


虽然尚有许多成果:

JSP自定义标签Taglib实现历程重点总结

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

复制代码 代码如下:


<?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文件。

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsddxd.html