JSP自定义标签

JSP自定义标签
    标签库是按照功能或实现进行分组的自定义标签的集合。
优点:
取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。

开发流程:
(1) 编写JSP,在JSP中使用自定义标签。

(2) 在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。

(3) .tld文件中指定标签使用的类。

自定义标签的分类:

(1)  简单标签:如< mytag:helloworld/>

(2)  带属性标签:如<imytag:checkinput dbname = “<myBean.getDBName()>”/>

(3)  带标签体的标签:

在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。

<mytag:checkinput dbname = “<myBean.getDBName()>”>

      <mytag:log message=”Table Name”>

<mytag:checkinput />

(4)       可以被Script使用的标签:

定义了id和type属性的标签可以被标签后面的Scriptlet使用。

<mytag:connection id = “oraDB” type = “DataSource” name = “Oracle”>

<%oraDB.getConnection(); %>

标签库包括如下组件:

1 标签处理程序类:定义标签的行为,并在JSP引擎遇到自定义标签时调用执行。

2 标签库描述符(TLD)文件:描述标签库的XML文档,向JSP引擎提供有关自定义标签的标签处理程序的信息。

3 应用程序部署描述符:提供与特定标签的标签库描述符相关的信息。它还描述使用的是哪一个标签库文件。Web.xml加入如下代码:但MyEclipse里加不进。

一个示例TLD文件如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>Application Tag Library</shortname>
    <uri>http://jakarta.apache.org/taglibs/struts-example-1.0</uri>
    <info>tag loop</info>
  <tag>
      <name>loop</name>
      <tagclass>test.jsp.tags.BodyTagExample</tagclass>
      <bodycontent>JSP</bodycontent>
      <attribute>
         <name>counts</name>
       <required>true</required>
       <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
</taglib>

tag中的name属性:定义了我们的tag名称,在后面会用到。
tag中的tagclass属性:指定了我们这个tag的实现类。
tage中的bodycontent属性:指定我们的页面内容是什么性质的。(注意:在jsp开发中这里必须写JSP)
tage中的attribute属性:定义了我们的这个tag可能有的属性。
attribute中的name属性:指定了属性的名称。它和我们类中定义的“int counts;”必须一样,并且在类中还必须包含一个setCounts(int counts)方法,否则这个属性就不能设置。
attribute中的required属性:表示这个属性是否是必须的。
attribute中的rtexprvalue属性:表示这个属性是否可以用JSP的程序段的结果输出。
<taglib> 
    <taglib-uri>demotag</taglib-uri> 
    <taglib-location>/WEB-INF/tld/mytag.tld</taglib-location> 
</taglib>

你可能感兴趣的:(编程,xml,Web,jsp,MyEclipse)