免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1983 | 回复: 0
打印 上一主题 下一主题

JSP自定义标签基础学习 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-12 22:45 |只看该作者 |倒序浏览
自定义标签的最大的特点:
利用 自定义标签,软件开发人员和页面设计人员可以独立地自由工作.页面设计人员可以把精力集中在使用标签(HTML,XML或者JSP)创建网站上,而软件开发人员则可以将精力集中在实现底层功能上面,若国际化等等,这样,页面设计人员可以使用自定义标签的形式来实现具体的功能.
下面我们来指定一个简单的标签,步骤如下
扩张TagSupport
写自定义Tag的tld文件
web.xml中指定你的tld文件
在JSP页面使用自定义标签

扩张TagSupport
        说明:
                一般不会去实现Tag接口,而是通过TagSupport类是实现了Tag的接口继承过来的字段,这些字段用做public int               doStartTag(),public int doEndTag()返回值
                Tag.EVAL_BODY_INCLUDE 包含主体内容
                Tag.SKIP_BODY     不包含主体内容
                Tag.EVAL_PAGE      包含后面的页面内容
                Tag.SKIP_PAGE     不包含主体的内容     
实现一个简单实现代码:
java 代码
package com.mercyblitz;   import java.io.IOException;   import javax.servlet.jsp.JspException;   import javax.servlet.jsp.JspWriter;   import javax.servlet.jsp.tagext.TagSupport;      public class MyTags extends TagSupport {       public int doStartTag()throws JspException       {           JspWriter out=pageContext.getOut();           try           {               out.println("Hello,World"; //页面中显示的内容           }catch(IOException e)           {               throw new JspException(e);           }           return SKIP_BODY; //不包含主体内容       }   }   

写自定义Tag的tld文件
xml 代码
<?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >   <taglib>     <tlibversion>tlibversion</tlibversion>  <!-- 你自定义标签的版本数 -->     <jsp-version>1.2</jsp-version>  <!-- 指定你的JSP版本,扩张标签是在JSP1.2之后兼容的 --?>     <shortname>shortname</shortname> <!-- 标签的简写 -->     <tag>       <name>tags</name>  <!-- 标签名字 -->       <tagclass>com.mercyblitz.mytags</tagclass>  <!-- 指定你的标签的类 -->     </tag>   </taglib>   
         就去干标签库元素<taglib>属性:表格如下
         属性表格属性描述tlib-version本标签库实现版本jsp-version标签库依赖的JSP版本short-name被JSP创作工具使用的一个短的默认名词uri指定这个标签库的uri信息display-name被工具使用的显示用的名字small-icon被工具使用的小图标large-icon被工具使用的大图标description本标签的描述validatorTLD验证信息listener实践监听器规范        tag标签相关属性:
tag标签相关属性表属性描述nametag标签唯一的名称tag-classtag标签的处理类tei-classtag标签的TagExtraInfo类body-content标签主体的内容display-name显示的名称small-icon被工具使用的小图标large-icon被工具使用的大图标description本标签的描述variable脚本变量的信息attribute标签属性的信息            这些呢,是为以后高级内容说要提到的!
web.xml中指定你的tld文件 xml 代码
//此教程来源于97xxoo教程网(www.97xxoo.org)查看完整的教程请点:http://www.97xxoo.org/article/3/2008/20081112317.shtml
<?xml version="1.0" encoding="UTF-8"?>   <web-app version="2.4"        xmlns="http://java.sun.com/xml/ns/j2ee"        xmlnssi="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">       <welcome-file-list>          <welcome-file>/WEB-INF/mytag.jsp</welcome-file> <!-- 设置欢迎页面 -->       </welcome-file-list>       <jsp-config>             <taglib>           <taglib-uri>http://mercyblitz.blog.ccidnet.com/taglibs.tld&lt;;/taglib-uri> <!-- 设置自定义标签的uri(不一定存在,但是一定要唯一),为页面的部署做好准备           <taglib-location>/WEB-INF/taglibs.tld</taglib-location>  <!--定位你的tld文件的相对路径 -->         </taglib>       </jsp-config>   </web-app>  
页面部署:mytag.jsp html 代码
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>   <%@ taglib uri="http://mercyblitz.blog.ccidnet.com/taglibs.tld" prefix="out" %>   <html>     <head>       <title>mytag.jsp</title>     </head>       <body>       <out:tags/>  <!-- 页面执行的结构,就是:  Hello,World -->
  </body>   </html>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP