记录-笔记-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