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标签使用实例** 在JavaServer Pages (JSP)技术中,标签是用于扩展页面功能的一种重要方式,它提供了一种与Java代码分离的视图层开发模式,使得页面更加整洁,易于维护。本实例将详细介绍如何使用JSP标签实现...
JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许开发者在HTML或XML文档中嵌入Java代码,以实现服务器...同时,遵循良好的编码规范和使用JSP标签,能够使代码更易维护,降低项目后期的修改成本。
这个“JSP标签示例(免积分)”很可能是针对初学者设计的一个教程,帮助他们理解和掌握JSP中的标记使用。 在JSP中,标记(Tag)是预定义的HTML元素,它们扩展了HTML的功能,提供了服务器端处理的能力。主要有以下几...
三、JSP标签使用方法 1. **简单标签**:不包含任何体内容,仅执行标签处理类中的`doStartTag()`方法。 2. **体标签**:包含体内容,需要处理`doStartTag()`和`doEndTag()`两个方法,体内容可以通过`bodyContent`对象...
"jsp简单标签的使用"这个主题主要涵盖JSP中的内置标签和自定义标签的使用方法。 首先,JSP内置标签是预定义的一组标签,它们提供了与Servlet生命周期相关的功能,例如控制流程、数据处理等。以下是一些常见的内置...
【JSP标签大全】 JSP(JavaServer Pages)是一种服务器端的动态网页技术,它允许开发者将HTML代码与Java代码结合起来,以实现更强大的功能。其中,JSP标签是JSP的重要组成部分,提供了丰富的功能,包括调用...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。自定义JSP标签是提高代码可重用性和可维护性的...同时,了解特定框架如Webwork中的自定义标签使用方式,将进一步提升开发效率和代码质量。
3. **在JSP页面中使用**:在JSP页面中,通过`<%@ taglib %>`指令引入自定义标签库,然后就可以像使用内置标签一样使用自定义标签了。 二、分页封装 分页是网页应用中常见的需求,通过自定义标签可以方便地实现。...
下面我们将深入探讨如何开发自定义JSP标签。 首先,我们需要理解自定义JSP标签的基本结构。自定义标签通常由三部分组成:标签库描述符文件(TLD),标签处理类(Tag Handler Class)以及标签库使用者在JSP页面中...
理解并熟练使用JSP标签能够极大地提高开发效率,使代码更加清晰和模块化。通过合理运用JSTL、自定义标签和JSP动作标签,可以创建出易于维护和扩展的JSP应用。在实际开发中,应根据需求选择合适的标签类型,以实现...
JSP标签库是由一组相关标签组成的集合,这些标签可以实现特定的功能,如数据处理、用户界面展示等。它们是基于Java的,通常以`.tld`(Tag Library Descriptor)文件的形式存在,用于描述标签的属性、事件和行为。 ...
例如,避免过多的脚本段,使用JSP标签库减少代码冗余,以及正确管理JSP页面的生命周期和会话状态。 总之,JSP提供了一种灵活的方式来构建动态Web应用程序,通过其丰富的指令和脚本元素,能够方便地结合HTML、Java...
### jsp标签的详细使用说明 #### 知识点一:JSP标签基础概念与分类 JSP(Java Server Pages)是一种动态网页技术标准,它将动态代码嵌入到静态HTML页面中,使得服务器能够根据请求动态生成网页内容。在JSP中,标签...
### jsp-config标签使用详解 在JavaServer Pages (JSP)技术中,`jsp-config`元素主要用于指定一组适用于整个Web应用程序或特定页面的配置参数。这些配置参数可以在部署描述符(web.xml)文件中定义,也可以通过注解...
总结来说,"简单JSP标签实现迭代"这个实例涉及了JSP自定义标签的创建和使用,包括TLD文件的配置、标签处理类的编写以及标签文件的设计。通过这种方式,我们可以更好地组织和管理代码,提高开发效率,并使得JSP页面...
JSP标签库是JavaServer Pages技术的一个重要组成部分,它允许开发者使用预定义的标签来增强HTML或XML文档的可读性和可维护性。这些标签通常封装了复杂的业务逻辑或者常见功能,避免在JSP页面中直接写入过多的Java...
JSP标准标签库是Java社区过程(JCP)的一个成果,它将常见的JSP操作封装成了标签,使得开发者可以通过XML格式的标签来实现业务逻辑,而非使用脚本语言。本文将详细介绍JSTL的核心概念、组成和应用场景。 **一、JSTL...
本教程将深入探讨JSP标签技术,特别是自定义标签的使用。 1. **JSP标准标签库(JSTL)** JSTL是Java社区为了统一JSP标签库而提出的标准,包括了Core、XML、JDBC、Format和Function五个核心标签库。Core库提供了...
本资源“jsp自定义标签大全”包含了一系列示例和详细教程,涵盖了从基础到高级的自定义标签使用方法,对于想要深入了解和掌握JSP自定义标签的开发者来说是一份宝贵的参考资料。通过学习和实践这些示例,你可以更好地...
这些标签帮助开发者避免在JSP页面中直接使用脚本元素,提高代码的整洁度。 2. **Format库**:这个库提供了处理日期、数字、货币格式化等功能,如`<fmt:formatDate>`、`<fmt:formatNumber>`等,有助于实现国际化和...