JSP 2特性 —— Tag File 支持
2016-03-30 22:53
585 查看
Tag File 是自定义标签的简化用法,使用Tag File可以无须定义标签处理类和标签库文件,但可以在JSP页面使用自定义标签
使用Tag File建立一个迭代器标签
1.建立Tag文件 :Tag File代理了标签处理类,它个格式类似于JSP
/WEB-INF/tags/iterator.tag
<%@ tag pageEncoding="GBK" import="java.util.List"%>
<!-- 定义了四个标签属性 -->
<%@ attribute name="bgColor" %>
<%@ attribute name="cellColor" %>
<%@ attribute name="title" %>
<%@ attribute name="bean" %>
<table border="1" bgcolor="${bgColor}">
<tr>
<td><b>${title}</b></td>
</tr>
<%List<String> list = (List<String>)
request.getAttribute("a");
// 遍历输出list集合的元素
for (Object ele : list){%>
<tr>
<td bgcolor="${cellColor}">
<%=ele%>
</td>
</tr>
<%}%>
</table>
注:Tag File具有5个编译指令:
-taglib :导入其他标签库
-include : 导入其他静态页面或者JSP页面
-tag :用于设置页面编码等属性
-attribute :设置自定义标签的属性
-variable :用于设置自定义标签的变量
2.在页面中使用自定义标签
useTagFile.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>迭代器tag file</title>
</head>
<body>
<h2>迭代器tag file</h2>
<%
// 创建集合对象,用于测试Tag File所定义的标签
List<String> a = new ArrayList<String>();
a.add("C/C++");
a.add("Java");
a.add("Java EE");
// 将集合对象放入页面范围
request.setAttribute("a" , a);
%>
<h3>使用自定义标签</h3>
<tags:iterator bgColor="#99dd99" cellColor="#9999cc"
title="迭代器标签" bean="a" />
</body>
</html>
注意:<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 和 <tags:iterator bgColor="#99dd99" cellColor="#9999cc"title="迭代器标签" bean="a" />表面标签使用/WEB-INF/tags路径下的iterator(Tag File)来处理标签。
总结:我们会发现就如同JSP文件会编译为Servlet一样,Tag File 也编译成标签处理类,自定义标签的后台依然由标签处理类完成,而这个过程由容器玩。打开Tomcat下项目E:\MyEclipse\apache-tomcat-8.0.23\work\Catalina\localhost\JSP-2\org\apache\jsp\tag路径会发现可以看到iterator_tag.java 、 iterator_tag.class文件,它们就是对应的标签处理类
打开iterator_tag.java 文件可以发现,Tag File 中只有如下的内置对象 :
-request : 与JSP脚本的request对应
-response
-session
-application
-config
-out
它们与JSP脚本的内置对象对应。
May -Good -Luck -Be -With -You
使用Tag File建立一个迭代器标签
1.建立Tag文件 :Tag File代理了标签处理类,它个格式类似于JSP
/WEB-INF/tags/iterator.tag
<%@ tag pageEncoding="GBK" import="java.util.List"%>
<!-- 定义了四个标签属性 -->
<%@ attribute name="bgColor" %>
<%@ attribute name="cellColor" %>
<%@ attribute name="title" %>
<%@ attribute name="bean" %>
<table border="1" bgcolor="${bgColor}">
<tr>
<td><b>${title}</b></td>
</tr>
<%List<String> list = (List<String>)
request.getAttribute("a");
// 遍历输出list集合的元素
for (Object ele : list){%>
<tr>
<td bgcolor="${cellColor}">
<%=ele%>
</td>
</tr>
<%}%>
</table>
注:Tag File具有5个编译指令:
-taglib :导入其他标签库
-include : 导入其他静态页面或者JSP页面
-tag :用于设置页面编码等属性
-attribute :设置自定义标签的属性
-variable :用于设置自定义标签的变量
2.在页面中使用自定义标签
useTagFile.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>迭代器tag file</title>
</head>
<body>
<h2>迭代器tag file</h2>
<%
// 创建集合对象,用于测试Tag File所定义的标签
List<String> a = new ArrayList<String>();
a.add("C/C++");
a.add("Java");
a.add("Java EE");
// 将集合对象放入页面范围
request.setAttribute("a" , a);
%>
<h3>使用自定义标签</h3>
<tags:iterator bgColor="#99dd99" cellColor="#9999cc"
title="迭代器标签" bean="a" />
</body>
</html>
注意:<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 和 <tags:iterator bgColor="#99dd99" cellColor="#9999cc"title="迭代器标签" bean="a" />表面标签使用/WEB-INF/tags路径下的iterator(Tag File)来处理标签。
总结:我们会发现就如同JSP文件会编译为Servlet一样,Tag File 也编译成标签处理类,自定义标签的后台依然由标签处理类完成,而这个过程由容器玩。打开Tomcat下项目E:\MyEclipse\apache-tomcat-8.0.23\work\Catalina\localhost\JSP-2\org\apache\jsp\tag路径会发现可以看到iterator_tag.java 、 iterator_tag.class文件,它们就是对应的标签处理类
打开iterator_tag.java 文件可以发现,Tag File 中只有如下的内置对象 :
-request : 与JSP脚本的request对应
-response
-session
-application
-config
-out
它们与JSP脚本的内置对象对应。
May -Good -Luck -Be -With -You
相关文章推荐
- 理解javascript中的回调函数(callback)
- 赠书《JavaScript高级程序设计(第三版)》5本
- JavaScript基础内容复习1
- 1-4-JS基础-条件判断
- 原生js实现Ajax
- javascript-datatable错误提示
- JavaScript函数表示式
- js总结-面向对象编程,DOM,BOM
- 第九章:BOM浏览器对象模型
- 【09类和模块】——6:javascript中的面向对象技术(集合类)
- JSP 2 特性 -- 表达式语言
- ExtJs之gridPanel的属性表格,编辑表格,表格分页,分组等技巧
- 【JavaScript】基础知识整理(四)
- javaScript——作用域和闭包概念
- js获取Url中参数值
- JavaScript 流程控制语句
- JS高级程序设置笔记(二)
- js中的作用域链
- 【JavaScript】基础知识整理(二)
- 图说js中的this——深入理解javascript中this指针