1、开发自定义标签类,该类继承自javax.servlet.jsp.tagext.SimpleTagSupport
如果标签类包含属性,必须有对应的setter和getter方法
重写doTag()方法,负责生成页面内容
package com.royzhou.hello;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class HelloTag extends SimpleTagSupport{
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void doTag() throws JspException, IOException {
getJspContext().getOut().write("Welcome " + userName + "!");
}
}
2、建立Tld文件,路径为web-inf目录下
<?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">
<tlib-version>1.0</tlib-version>//版本信息
<short-name>myTagLib</short-name>//简写
<uri>http://www.royzhou.com/myTagLib</uri>//指定标签库的URI,重要属性,在使用标签库的时候用到
标签库可包含多个tag
<tag>
<name>HelloWorld</name> //标签名称
<tag-class>com.royzhou.hello.HelloTag</tag-class> //处理类
<body-content>empty</body-content> //常用的是empty和scriptless
//标签体内容(4种)
//tagdependent:标签体内容 直接被写入BodyContent,由自定义标签类来进行处理,而不被JSP容器解释,
// <test:myList>
// select name,age from users
// </test:myList>
//JSP:接受所有JSP语法
// <my:test>
// <%=request.getProtocol()%>
// </my:test>
//empty:空标记,即起始标记和结束标记之间没有内容。
// <test:mytag />
// <test:mytag uname="Tom" />
// <test:mytag></test:mytag>
//scriptless:静态HTML或者表达式语言,但不能是JSP脚本
<attribute>
<name>userName</name>
<required>true</required> //该属性是否必须
<fragment>true</fragment> //该属性是否支持JSP脚本
//rtexprvalue: 由请求时表达式来指定属性的值,默认为false,如下必须设置为true:
<test:welcome uname="<%=request.getParameter("username") %>" />
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
3、使用标签库
在页面中引入<%@ taglib="myTag" uri="http://www.royzhou.com/myTagLib" %>
使用<mytag:HelloWorld userName="royzhou" />输出可以预览效:
4、带标签体的标签
迭代器标签开发处理类
package com.royzhou.hello;
import java.io.IOException;
import java.util.Collection;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class IteratorTag extends SimpleTagSupport {
private String collection;
private String item;
public void doTag() throws JspException, IOException {
//JspContext是pageContext的父类,可以通过向上转型获取pageContext对象
PageContext pageContext = (PageContext) getJspContext();
Collection itemList = (Collection)pageContext.getRequest().getAttribute(collection);
for(Object s : itemList) {
//设置属性到pageContext中
getJspContext().setAttribute(item, s);
//输出标签体
getJspBody().invoke(null);
}
}
public String getCollection() {
return collection;
}
public void setCollection(String collection) {
this.collection = collection;
}
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
}
tld文件配置
<tag>
<name>Iterator</name>
<tag-class>com.royzhou.hello.IteratorTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>collection</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
<attribute>
<name>item</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
</tag>
测试页面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.royzhou.com/myTagLib" prefix="myTag" %>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
request.setAttribute("list",list);
%>
<myTag:HelloWorld userName="royzhou" />
<table>
<myTag:Iterator item="item" collection="list">
<tr>
<td>${item }</td>
</tr>
</myTag:Iterator>
</table>
</body>
</html>
完毕……简单介绍JSP标签开发入门!!!!!!!!
分享到:
相关推荐
如何使用jsp标签来是你的代码更加规范,有效。
JSP动态分页 每页显示记录数 当前第几页
JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签
免积分下载,没积分的童鞋们的福音,相当经典的入门级教程。
本视屏是李兴华老师讲解的jsp中基本标签的介绍及使用。 初学jsp的人可以很快了解jsp中基本标签的使用。
jsp标签用法.rar jsp标签用法.rar jsp标签用法.rar jsp标签用法.rar
掌握自定义jsp标签s
· 怎么使用tag标签? o 声明要使用的tag库 o 找到与之对应的tag处理类 o tag标签的类型 · 自定义tag标签 o tag处理类 o tag库描述 o tag标签示例 o 带属性的tag o 带body的tag o 定义了脚本...
该资料中含有jsp标准标签库的使用案例,涵盖了常用的jsp标签、条件标签、迭代标签等等
jsp-config标签使用详解 仅作为参考
想要在 JavaServer Pages (JSP) 应用程序中添加自定义标签吗?本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用...
jsp标签的详细使用说明:,详细描述了jsp标签的相关知识
用工程的形式展示如何开发自定义JSP标签,在studyRemark里面有在网上搜罗的详细教程。如果结合我写的实例自定义标签,相信你能很快掌握如何开发自定义标签。
jsp页面使用C标签,需要在页面引入c标签库 JSP 标准标签库(JSTL)
jsp使用自定义标签taglib分页系列——完整例子
本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...
JSP标签、自定义标签,含有属性的JSP标签,学习标签的基本功。
jsp自定义标签jsp自定义标签jsp自定义标签
从http://tomcat.apache.org/download-taglibs.cgi上下载的,希望可以帮助到大家