tld标签库的使用

来源:互联网 发布:安工大网络接入系统 编辑:程序博客网 时间:2024/06/04 22:29
记录-笔记-tld-自定义扩展标签(tld)
www.diybl.com    时间 : 2010-07-19  作者:网络   编辑:huyang629 点击:  28 [ 评论 ]
-
-
一、Java代码
(1)HelloTag.java
package com.tagDemo;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;

public class HelloTag implements Tag {

private PageContext pageContext;
private Tag parent;

public HelloTag(){
super();
}

public int doStartTag() throws JspException {
return SKIP_BODY;
}

public int doEndTag() throws JspException {
try{   
// for(int i=0;i<1000000000;i++){
//        
//        }
           pageContext.getOut().write("Hello World!你好,世界!+jboss");
     }catch(IOException e){
          throw new JspTagException("IO Error: " + e.getMessage());
        }  
        return EVAL_PAGE; 
}

public Tag getParent() {
return parent;
}

public void release() {
//释放标签占用资源,比如链接数据库等
}

public void setPageContext(final PageContext pageContext) {
this.pageContext=pageContext;
}

public void setParent(final Tag parent) {
this.parent=parent;
}

}
-------------------------------------------------------------------------
(2)MyEL.java
package com.tagDemo;

public class MyEL {

/**
* @param name  - 用户姓名
* @return
*/
public static String test(String name){
if(name==null || name.equals("")){
name="Visitor";
}
return name;
}
}
-------------------------------------------------------------------------
(3)MyTag.java
package com.tagDemo;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class MyTag extends SimpleTagSupport {

@Override
public void doTag() throws JspException, IOException {
String content = "<table border=1>" +
"<tr bgcolor=9944cc><td>simpeltag测试</tr></td>" +
"<tr tr=cc44cc><td>helloWorld!</td></tr>" +
"</table>";
getJspContext().getOut().write(content);
}
}
----------------------------------------------------------------------------
二、mytag.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>

<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 web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <description>A tag library exercising SimpleTag handlers.</description>
    
    <tlib-version>1.0</tlib-version>
    <short-name>examples</short-name>
    <uri>/tagDemo</uri>
    <description>
Just a demo for taglib.
    </description>

  <tag>
    <name>helloTag</name>
    <tag-class>com.tagDemo.HelloTag</tag-class>
    <body-content>empty</body-content>
    <description>
first tag demo.
    </description>
  </tag>
  
  <tag>
  <name>helloWorld</name>
  <tag-class>com.tagDemo.MyTag</tag-class>
  <body-content>empty</body-content>
  </tag>
  
  <function>
  <name>test</name>
  <function-class>com.tagDemo.MyEL</function-class>
  <function-signature>java.lang.String test(java.lang.String)</function-signature>
  </function>
</taglib>
---------------------------------------------------------------------------------
三、web.xml
<jsp-config>
<taglib>
<taglib-uri>/tagDemo</taglib-uri>
<taglib-location>/WEB-INF/tlds/mytag.tld</taglib-location>
</taglib>
</jsp-config>
---------------------------------------------------------------------------------
四、mytag.jsp
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ taglib uri="/tagDemo" prefix="hello"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>HelloTag</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
  </head>
  <body>
<p>以下的内容从Taglib中显示:</p>
<hello:helloWorld/>
<hr />
    <p>以下的内容从EL中显示</p>
    ${hello:test("")}
    
    <p>以下的内容从Taglib中显示:</p>
<p><i><hello:helloTag /></i></p>
  </body>
</html>

文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/java/javaxl/20100719/452794.html
0 0