一、移除JSP页面的Java代码:写一个获取当前时间的程序。
1、你首先写一个Java类,这个类继承Tag的默认实现类TagSupport,然后覆盖doStartTag()方法,代码如下:
package cn.tag;
import java.io.IOException;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 移除jsp页面的Java代码。
* Porject Name:tag
* File Name:Demo1.java
* Description:
* Author:zhangjl
* Date:2014-1-12
* Copyright (c) 2014,web_bckf@126.com All Rights Reserved.
*/
public class Demo1 extends TagSupport {
@Override
public int doStartTag() throws JspException {
JspWriter out=this.pageContext.getOut();
try {
/*
* 返回当前的Java代码。
*/
out.print(new Date().toLocaleString());
} catch (IOException e) {
throw new RuntimeException();
}
return super.doStartTag();
}
}
2、写一个tld文件,这个没有就去tomcat的example web应用中拷贝。
<?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"> <description>JSTL 1.1 functions library</description> <display-name>JSTL functions sys</display-name> <tlib-version>1.1</tlib-version> <short-name>fns</short-name> <uri>http://java.sun.com/jsp/jstl/functionss</uri> <tag> <name>show</name> <tag-class>cn.tag.Demo1</tag-class> <body-content>empty</body-content> </tag> </taglib>
注意:1、<short-name>标签体中可以随便写。2、<tag>标签体中有个<describe>这个标签,这个你可以不要,或者写你的注释。3、<name>这个很重要,名字要写的有识别性。4、<tag-class>这个就是之前的Java类的路径。5、<body-content>这个表示你要写的标签是否有标签体,没有是empty,有就是一般写JSP(注意要大写)。6、<uri>这里的地址你可以写一个公司的网址之类的,这个很重要,要在JSP页面引用这个URI。
3、写一个jsp文件,然后在jsp文件中引用这个tld文件,或文件中配置的uri地址。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functionss" prefix="fns"%>
<!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>Insert title here</title>
</head>
<body>
<fns:show/>
</body>
</html>
这里注意红色字体的部分,perfix表示你写标签体的前缀<fns:show/>,show就是tld文件中配置的name标记。