第一步:编写一个标签处理器类
public class ForeachTag1 extends SimpleTagSupport {
//用来作为关键字存放值
private String var;
private Object items;
public void setVar(String var) {
this.var = var;
}
public void setItems(Object items) {
this.items = items;
}
public void doTag() throws JspException, IOException {
List list=(List)items;
Iterator iterator=list.iterator();
while(iterator.hasNext())
{
Object obj=iterator.next();
this.getJspContext().setAttribute(var, obj);
this.getJspBody().invoke(null);
}
}
}
第二步:WEB-INF 目录下编写一个*.tld标签描述文件
<?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>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>http://www.liyong.foreach1tag</uri>
<tag>
<name>foreach1</name>
<tag-class>com.liyong.foreach.ForeachTag1</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
</taglib>
第三步:编写jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.liyong.foreach1tag" prefix="foreach"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'foreach1.jsp' starting page</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body> <br>
<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
request.setAttribute("list",list);
%>
<foreach:foreach1 var="str" items="${list}" >
${str }
</foreach:foreach1>
</body>
</html>
第四步:测试...
分享到:
相关推荐
### JSP自定义迭代标签详解 #### 一、引言 在JSP(JavaServer Pages)开发中,自定义标签可以极大地提高代码的复用性和可维护性。特别是在处理循环迭代逻辑时,自定义迭代标签能够使页面逻辑更加清晰、简洁。本文...
在Java服务器页面(JSP)开发中,自定义标签(Custom Tags)是扩展JSP功能的一种强大工具。它们允许开发者创建可重用的组件,这些组件可以像HTML标签一样在页面上使用,从而提高代码的可读性和可维护性。本实例主要...
1. `<c:forEach>`:这是JSP中的迭代标签,用于遍历集合或数组。它可以在HTML或其他内容中重复渲染一段代码。例如,如果你想在网页上显示一个用户列表,你可以先将用户列表存储在一个ArrayList中,然后用`<c:forEach>...
在JSP页面中,Java标签库扮演着至关重要的角色,它允许开发者使用预先定义好的标签执行各种操作,例如数据输出、流程控制、迭代处理以及异常处理等。 JSP自带的核心标签库中,包含了许多用于简化Web开发的标签。...
总结来说,JSP自定义标签提供了一种模块化、可重用的开发方式,让开发者能够分离界面和逻辑,提高代码的可维护性和扩展性。通过自定义Tag标签,不仅可以简化HTML设计者的任务,还允许Java程序员专注于复杂的业务逻辑...
JSP(JavaServer Pages)标准标签库(JSTL)是Java EE平台的一部分,它提供了一套标准的标签来处理常见任务,如迭代、条件判断、XML处理等,以简化JSP页面的编写,提高代码的可读性和可维护性。C标签库(Core Tag ...
2. **迭代标签**: 遍历集合并多次输出内容,如foreach标签。 3. **身体标签**: 包含一个或多个动态生成的JSP片段作为其内容,如。 **自定义标签的使用** 在JSP页面中,可以通过`<jsp:taglib>`指令引入自定义标签库...
理解并熟练使用JSP标签能够极大地提高开发效率,使代码更加清晰和模块化。通过合理运用JSTL、自定义标签和JSP动作标签,可以创建出易于维护和扩展的JSP应用。在实际开发中,应根据需求选择合适的标签类型,以实现...
1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它包含了标签的元数据,如标签名称、属性、导出的类等信息。TLD文件通常以`.tld`为扩展名,需要放置在WEB-INF...
总结起来,学习和熟练使用JSP的简单标签是Web开发中必不可少的步骤,它可以帮助开发者快速构建动态网页,同时保持代码的清晰和整洁。通过深入理解内置标签的功能,以及如何创建和使用自定义标签,可以提升JSP编程的...
使用JSTL标签库能够提高JSP页面的可读性和维护性,避免在JSP页面中嵌入大量的Java代码,同时也可以利用JSTL提供的国际化标签库(i18n)进行本地化开发。 在JSTL的早期版本中,由于标签库的资源定位是通过硬编码的...
7. **JavaServer Pages Standard Tag Library (JSTL)**:一套标准标签库,提供用于处理常见任务的标签,如XML处理、条件语句、迭代等,以减少脚本代码。 8. **自定义标签**:开发者可以根据需求创建自己的标签库,...
JSP标准标签库是Java社区过程(JCP)的一个成果,它将常见的JSP操作封装成了标签,使得开发者可以通过XML格式的标签来实现业务逻辑,而非使用脚本语言。本文将详细介绍JSTL的核心概念、组成和应用场景。 **一、JSTL...
例如,我们可以创建一个迭代标签,用于遍历集合并打印每个元素。标签处理类会实现`javax.servlet.jsp.tagext.TagSupport`接口,定义属性(如集合)和处理方法。 **标签库描述(TLD)** TLD文件是自定义标签库的元...
JSP 标准标签库(JavaServer Pages Standard Tag Library,简称 JSTL)是官方推荐的一套标签库,它提供了多种常用的功能,如条件判断、迭代、XML处理等。例如,`<c:if>` 和 `<c:forEach>` 分别用于条件判断和循环,...
1. **编译阶段**:当JSP首次被请求时,服务器会将其转换为一个JavaServlet类。 2. **加载阶段**:Servlet被加载到内存中,创建Servlet实例。 3. **初始化阶段**:调用Servlet的`init()`方法,进行初始化操作,如设置...
JSTL是一个标准的、开源的JSP标签库,由Apache软件基金会的Tomcat项目开发维护。它提供了用于处理常见任务的标签,如迭代、条件判断、XML处理、国际化以及数据库操作等。JSTL的核心库主要包含了用于执行控制流(如if...
- JSTL是一组标准标签库,提供包括迭代、条件判断、XML处理等功能,减少对脚本的依赖,使代码更清晰。 5. **JSP与Servlet的关系** - JSP本质是Servlet的简化版本,JSP文件在服务器端会被转换成Servlet。 - 当JSP...
JSP开发技术中的JSTL(JavaServer Pages Standard Tag Library)是一个强大的标签库,它提供了许多预定义的标签,使得开发者能更方便地处理常见任务,如迭代、条件判断、异常处理、输入验证等,从而提高了代码的...
JSTL是一组用于简化JSP开发的标准标签库。它包括多个功能模块,如核心标签、SQL标签、XML处理标签等。使用JSTL可以减少对脚本语言的依赖,提高页面的可维护性和可读性。 - **core**: 提供基本功能,如迭代、条件...