码迷,mamicode.com
首页 > Web开发 > 详细

一个简单的jsp自定义标签

时间:2017-01-08 07:56:22      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:重写   round   标示   路径   esc   上下文   des   其他   extend   

学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来:

例子1:

步骤:
1.编写标签实现类:
  继承javax.servlet.jsp.tagext.SimpleTagSupport;
  重写doTag,实现在网页上输出;
2.在web-inf目录或其子目录下,建立helloword.tld文件,即自定义标签的说明文件
  注意:标签处理类必须放在包中,不能是裸体类;不需要修改web.xml;
  //tld: tag lib description 标签库描述
 
java代码:
package com.mytag;

import java.io.IOException;
import javax.servlet.jsp.JspException;

public class HelloTag extends javax.servlet.jsp.tagext.SimpleTagSupport{

    @Override
    public void doTag() throws JspException, IOException {
        //拿到当前这个jsp文件的上下文,拿到输出流
        getJspContext().getOut().write("HelloWorld!");
    }
}

jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/helloworldtaglib" prefix="mytag"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试自定义jsp tag标签</title>
</head>
<body>
     <mytag:helloworld/>
</body>
</html>

tld描述文件:

<?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">

  <tlib-version>1.0</tlib-version>
  <short-name>mytag</short-name>
  <uri>/helloworldtaglib</uri>
  <tag>
    <name>helloworld</name>
    <tag-class>com.mytag.HelloTag</tag-class>
    <body-content>empty</body-content>
  </tag>       
</taglib>

<!-- 解释: -->
<!-- short-name: 这个标签的前缀名 这里就是<mytag: /> 可以防止和别人定义的标签重名的冲突-->
<!-- uri: 当前这个tld文件要访问它的时候使用的独一无二的标示符,用来找相应的tld文件 -->
<!-- body-content: 开始标签和结束标签之间的信息,标签体; 如<img/>标签体就是空的 -->
<!-- tomcat看到<mytag:helloworld/>的helloworld时候,就在tab下面找name=helloworld对应的class,调用doTag方法 -->

因为我这里的tld文件是放在/WEB-INF/tags/下面的,要配置web.xml文件:加上配置:

<jsp-config>
        <taglib>
            <!--标签库的uri路径即jsp头文件中声明<%@ taglib uri="/helloworldtaglib" prefix="mytag"%>的uri-->
            <taglib-uri>/helloworldtaglib</taglib-uri>
            <taglib-location>/WEB-INF/tags/helloworld.tld</taglib-location>
        </taglib>
  </jsp-config>

输出结果:

技术分享

后面有其他的用到的,继续更新》。。。。。

一个简单的jsp自定义标签

标签:重写   round   标示   路径   esc   上下文   des   其他   extend   

原文地址:http://www.cnblogs.com/tenWood/p/6260825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!