`
1028826685
  • 浏览: 939167 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

jsp开发迭代标签二

    博客分类:
  • Jsp
 
阅读更多
该例注意实现对不同集合的迭代

看例子

第一步:编写标签处理器类
public class ForeachTag2 extends SimpleTagSupport {

private Object items;
private String var;
//把所有的集合和数组转换成单列集合
private Collection collection;


public void setVar(String var) {
this.var = var;
}

public void setCollection(Collection collection) {
this.collection = collection;
}

public void setItems(Object items) {
this.items = items;

if(items==null)
collection=null;
//双列集合
if(items instanceof Collection)
{
collection=(Collection) items;
}
//单列集合
if(items instanceof Map){
Map map=(Map)items;
collection=map.entrySet();
}
//数组 不能用instanceof 因为如果是基本数据类型就会报错
if(items.getClass().isArray()){
this.collection=new ArrayList();
int len=Array.getLength(items);
for(int i=0;i<len;i++)
this.collection.add(Array.get(items, i));
}

}

public void doTag() throws JspException, IOException {

if( collection==null) return;
Iterator it=collection.iterator();
while(it.hasNext()){
Object value=it.next();
this.getJspContext().setAttribute(var, value);
this.getJspBody().invoke(null);
}
}
}

第二步:编写标签描述文件



<?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>
   <tag>
    <name>foreach2</name>
    <tag-class>com.liyong.foreach.ForeachTag2</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> 

</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>&nbsp;<br>

<foreach:foreach2 items="${list}" var="str">
${str }<br/>
</foreach:foreach2>

  ______map_____<br>
<%
Map map=new HashMap();
map.put("aa","111");
map.put("bb","222");
map.put("cc","333");
request.setAttribute("map",map);
  %>
<foreach:foreach2 items="${map}" var="entry">
  ${entry.key } :${entry.value }<br/>
</foreach:foreach2>

 
______Integer_____<br>
  <%
  Integer num[]={new Integer(1),new Integer(2),new Integer(3),new Integer(4)};
  request.setAttribute("num",num);
   %>
<foreach:foreach2 items="${num}" var="i">
${i }<br/>
</foreach:foreach2>

______String_____<br>
  <%
  String strs[]={"sss","mmm"};
  request.setAttribute("strs",strs);
   %>
<foreach:foreach2 items="${strs}" var="str">
${str }<br/>
</foreach:foreach2>
______int_____<br>
  <%
  int num2[]={11,22,33,44};
  request.setAttribute("num2",num2);
   %>
<foreach:foreach2 items="${num2}" var="i">
${i }
</foreach:foreach2>
  </body>
</html>

第四步:测试...
分享到:
评论

相关推荐

    jsp自定义迭代标签

    #### 二、自定义迭代标签的基本概念 在JSP中,迭代标签用于遍历集合或其他可迭代对象,如数组或列表等。自定义迭代标签可以帮助开发者更好地控制迭代过程中的行为,提供更灵活的使用方式。在实现自定义迭代标签时,...

    简单JSP标签实现迭代

    在Java服务器页面(JSP)开发中,自定义标签(Custom Tags)是扩展JSP功能的一种强大工具。它们允许开发者创建可重用的组件,这些组件可以像HTML标签一样在页面上使用,从而提高代码的可读性和可维护性。本实例主要...

    JAVAWEBjsp通用标签与迭代标签

    以上四个标签是JSP开发中非常基础且实用的标签,它们极大地简化了代码编写,并提高了代码的可维护性。在实际项目中,通常会结合使用这些标签和其他JSTL(JavaServer Pages Standard Tag Library)标签来构建复杂的...

    jsp页面java标签库

    在JSP页面中,Java标签库扮演着至关重要的角色,它允许开发者使用预先定义好的标签执行各种操作,例如数据输出、流程控制、迭代处理以及异常处理等。 JSP自带的核心标签库中,包含了许多用于简化Web开发的标签。...

    jsp标签大全

    其中,JSP标签是JSP的重要组成部分,提供了丰富的功能,包括调用JavaBeans组件、处理用户请求等,有效地降低了开发的复杂性和维护成本。JSP标签库(Tag Library)则允许开发者自定义标签,扩展JSP的功能,类似于XML...

    JSP 标准标签库(c标签库)

    通过理解并熟练运用JSP标准标签库中的C标签库,开发者可以更高效地编写JSP页面,提升开发效率,并保持代码的整洁和可读性。在实际项目中,结合EL和其他JSTL库,如fmt、sql、xml等,可以实现更复杂的业务逻辑处理。

    jsp自定义标签大全.rar

    2. **迭代标签**: 遍历集合并多次输出内容,如foreach标签。 3. **身体标签**: 包含一个或多个动态生成的JSP片段作为其内容,如。 **自定义标签的使用** 在JSP页面中,可以通过`&lt;jsp:taglib&gt;`指令引入自定义标签库...

    jsp标签用法.rar

    理解并熟练使用JSP标签能够极大地提高开发效率,使代码更加清晰和模块化。通过合理运用JSTL、自定义标签和JSP动作标签,可以创建出易于维护和扩展的JSP应用。在实际开发中,应根据需求选择合适的标签类型,以实现...

    jsp 自定义标签的使用

    2. **实现标签处理类(Tag Handler)**:每个自定义标签对应一个Java类,该类需要实现`javax.servlet.jsp.tagext.Tag`或其子接口,如`SimpleTag`。在这个类中,我们可以编写处理标签逻辑的代码。 3. **在JSP页面中...

    jsp简单标签的使用

    总结起来,学习和熟练使用JSP的简单标签是Web开发中必不可少的步骤,它可以帮助开发者快速构建动态网页,同时保持代码的清晰和整洁。通过深入理解内置标签的功能,以及如何创建和使用自定义标签,可以提升JSP编程的...

    JSP应用开发与实践

    7. **JavaServer Pages Standard Tag Library (JSTL)**:一套标准标签库,提供用于处理常见任务的标签,如XML处理、条件语句、迭代等,以减少脚本代码。 8. **自定义标签**:开发者可以根据需求创建自己的标签库,...

    JSP标准标签jar

    在Java Web开发中,JSP(JavaServer Pages)标准标签库(JSTL)是用于增强JSP页面可读性和可维护性的重要工具。JSP标准标签库是Java社区过程(JCP)的一个成果,它将常见的JSP操作封装成了标签,使得开发者可以通过...

    JSP标准标签库

    使用JSTL标签库能够提高JSP页面的可读性和维护性,避免在JSP页面中嵌入大量的Java代码,同时也可以利用JSTL提供的国际化标签库(i18n)进行本地化开发。 在JSTL的早期版本中,由于标签库的资源定位是通过硬编码的...

    JSP标签库

    例如,我们可以创建一个迭代标签,用于遍历集合并打印每个元素。标签处理类会实现`javax.servlet.jsp.tagext.TagSupport`接口,定义属性(如集合)和处理方法。 **标签库描述(TLD)** TLD文件是自定义标签库的元...

    JSP页面中标签的使用

    JSP 标准标签库(JavaServer Pages Standard Tag Library,简称 JSTL)是官方推荐的一套标签库,它提供了多种常用的功能,如条件判断、迭代、XML处理等。例如,`&lt;c:if&gt;` 和 `&lt;c:forEach&gt;` 分别用于条件判断和循环,...

    jsp程序,jsp开发企业网站程序

    【JSP程序与企业网站开发】 JSP(JavaServer Pages)是Java平台上的一个用于构建动态网页的技术,它允许开发者将HTML、CSS、JavaScript等前端语言与Java代码结合,实现服务器端的数据处理和业务逻辑。JSP在企业网站...

    Jsp的标签文件

    JSTL是一个标准的、开源的JSP标签库,由Apache软件基金会的Tomcat项目开发维护。它提供了用于处理常见任务的标签,如迭代、条件判断、XML处理、国际化以及数据库操作等。JSTL的核心库主要包含了用于执行控制流(如if...

    jsp开发及应用

    - JSTL是一组标准标签库,提供包括迭代、条件判断、XML处理等功能,减少对脚本的依赖,使代码更清晰。 5. **JSP与Servlet的关系** - JSP本质是Servlet的简化版本,JSP文件在服务器端会被转换成Servlet。 - 当JSP...

    jsp开发技术之jstl标签

    JSP开发技术中的JSTL(JavaServer Pages Standard Tag Library)是一个强大的标签库,它提供了许多预定义的标签,使得开发者能更方便地处理常见任务,如迭代、条件判断、异常处理、输入验证等,从而提高了代码的...

    自定义(jsp)标签

    自定义标签为JSP页面带来了极大的灵活性和可扩展性,不仅提升了开发效率,还提高了代码的可维护性和可读性。通过理解标签库的作用和标签继承体系,我们可以更好地设计和利用自定义标签来优化我们的Web应用程序。

Global site tag (gtag.js) - Google Analytics