您的位置:首页 > Web前端 > JavaScript

自定义JSP标签的应用实例

2011-12-07 17:55 239 查看
6.3.5 自定义JSP标签的应用实例(2)

例程6-13 转化大写标签的处理类ToUpperCase.java

package mytags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class ToUpperCase extends BodyTagSupport {
//定义一个存放结果的变量
String var = null;
public String getVar() {
return var;
}
public void setVar(String var) {
this.var = var;
}
//标签开始时调用的处理方法
public int doStartTag() throws JspException {
//表示需要处理标签体
return EVAL_BODY_BUFFERED;
}
//判断了标签体内容之后调用的处理方法
public int doAfterBody() throws JspException {
//取得标签体对象
BodyContent body = getBodyContent();
//取得标签体的字符串内容
String content = body.getString();
//清除标签体中的内容
body.clearBody();
//将内容转换成大写
content = content.toUpperCase();
//在pageContext对象中保存变量
pageContext.setAttribute(var,content);
//结束对标签体的处理
return SKIP_BODY;
}
}

例程6-14 标签库描述文件mytaglib.tld

<?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>
<tlib-version>mytaglib 1.0</tlib-version>
<jsp-version>jsp 2.0</jsp-version>
<short-name>mytag</short-name>
<uri>http://www.e868.net/mytag</uri>
<tag>
<name>echo</name>
<tag-class>mytags.Echo</tag-class>
<body-content>empty</body-content>
<attribute>
<name>msg</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>formatdate</name>
<tag-class>mytags.FormatDate</tag-class>
<body-content>empty</body-content>
<attribute>
<name>date</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>touppercase</name>
<tag-class>mytags.ToUpperCase</tag-class>
<body-content>tagdependent</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>java.lang.String</variable-class>
<scope>AT_BEGIN</scope>
</variable>
<attribute>
<name>var</name>
<required>true</required>
</attribute>
</tag>
</taglib>

例程6-15 使用自定义标签的JSP页面index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib prefix="mytag" uri="http://www.e868.net/mytag"%>
<html>
<head><title>自定义JSP标签应用实例</title></head>
<body>
<h2>自定义JSP标签应用实例</h2><hr>
<mytag:echo msg="刘斌,你好!"/><br>
现在的时间是:<mytag:echo msg="<%=(new Date()).toString()%>"/><br>
当前容器的版本为:<mytag:echo msg="<%=application.getServerInfo()%>"/><br>
当前日期是:<mytag:formatdate date="<%=new Date()%>" type="date"/><br>
当前时间是:<mytag:formatdate date="<%=new Date()%>" type="time"/><br>
当前日期和时间是:<mytag:formatdate date="<%=new Date()%>" type="all"/><br>
<mytag:touppercase var="result">abcdefghijklmnopqrst</mytag:touppercase>
转换结果:<%=result%>
</body>
</html>

运行效果如图6-5所示。



(点击查看大图)图6-5 index.jsp运行效果
6.4 JSTL标签库

JSP标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作及数据库访问等。

这些标记库实现了大量服务器端 Java 应用程序常用的基本功能,大大提高了Web应用程序的开发效率,同时也提高了Web应用程序的可阅读性和可维护性。

目前最新的JSTL版本为1.1,必须在支持Servlet2.4/JSP2.0的容器(如:Tomcat5.x)中才能运行,读者只要将JSTL的jstl.jar和standard.jar复制到自己Web应用程序的WEB-INF/lib目录下便可使用JSTL了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: