`

自定义标签库读取list输出

 
阅读更多
jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.cgmcc.com/jsp/mylist" prefix="my5" %>

<%
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 'list.jsp' starting page</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
 
  <body>
     <%
        List list=new ArrayList();
        list.add("aaaa");
        list.add("sss");
        list.add("ddd");
        list.add("fff");
        request.setAttribute("listObj",list);
      %>
      <hr>
     
      <%
      List list1=(List)request.getAttribute("listObj");
      Iterator iterator=list1.iterator();
      while(iterator.hasNext()){
      String str=(String)iterator.next();
      request.setAttribute("strstr",str);
     
       %>
       ${strstr} <br>
      <%
      }
       %>
       <hr/>
       <!-- 用自定义标签库表示 -->
       <my5:myList  items="${listObj}" var="yyyy" >
         ${yyyy} ##<br/>
       </my5:myList>
  </body>
</html>




java
package com.cgm.tlist;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class MyList extends SimpleTagSupport {
private List items;   
private String var;

public List getItems() {
return items;
}

public void setItems(List items) {
this.items = items;
}

public String getVar() {
return var;
}

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

@Override
public void doTag() throws JspException, IOException {

System.out.println("============"+items);
System.out.println("-============="+var);

Iterator iterator =items.iterator();

while (iterator.hasNext()) {
             String str=(String) iterator.next();
             this.getJspContext().setAttribute(var, str);
             this.getJspBody().invoke(null);
            
            
}








}

@Override
protected JspFragment getJspBody() {
// TODO Auto-generated method stub
return super.getJspBody();
}

@Override
protected JspContext getJspContext() {
// TODO Auto-generated method stub
return super.getJspContext();
}

@Override
public JspTag getParent() {
// TODO Auto-generated method stub
return super.getParent();
}

@Override
public void setJspBody(JspFragment jspBody) {
// TODO Auto-generated method stub
super.setJspBody(jspBody);
}

@Override
public void setJspContext(JspContext pc) {
// TODO Auto-generated method stub
super.setJspContext(pc);
}

@Override
public void setParent(JspTag parent) {
// TODO Auto-generated method stub
super.setParent(parent);
}

}





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">
<tlib-version>1.0</tlib-version>
<short-name>my5</short-name>
<uri>http://www.cgmcc.com/jsp/mylist</uri>

   <!--
  <my5:myList  items="${listObj}" var="yyyy" >
   -->
 
 
 
  <tag>
    <name>myList</name>
    <tag-class>com.cgm.tlist.MyList</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>true</rtexprvalue>
     </attribute>
    
    
  </tag>


</taglib>
分享到:
评论

相关推荐

    struts1标签库

    Struts1标签库是Java Web开发中非常重要的一个组件,它是Apache Struts框架的一部分,用于简化JSP页面的编写,提高代码的可读性和可维护性。以下将详细阐述Struts1标签库中的各个标签及其用途。 1. `bean:cookie`:...

    Studentlist.rar_studentlist

    - **文件输入/输出**:为了持久化存储学生信息,程序可能还需要实现读取和写入文件的功能,例如使用Java的`FileWriter`和`BufferedReader`等类。 以上就是基于给定信息的分析,这些知识点涵盖了基础的Java编程和...

    jar读取dxf

    在Java环境中,通过JAR包可以集成特定的功能库,例如读取或写入DXF文件。 描述提到“读取dxf的jar包,可以通过反编译解除源码”,这意味着这个JAR文件包含了一个或多个类库,它们实现了对DXF文件的读取功能。开发者...

    Ant自定义任务

    这可以通过在项目的`build.xml`文件中使用`&lt;taskdef&gt;`标签完成,指定任务类的全限定名和类加载器路径。 例如,假设我们有一个自定义任务`buildSql`,用于根据模板生成SQL脚本: ```xml ``` 然后在`...

    DOM4J读取XML文件

    标签中的"源码"可能是指DOM4J库的源代码阅读和理解,这对于深入学习DOM4J的工作原理和扩展功能非常有帮助。"工具"可能指的是DOM4J作为开发工具的一部分,用于XML处理的各种实用程序。 在博客“DOM4J读取XML文件”...

    设计文档1

    EasyExcel是一款轻量级的Java处理Excel的工具库,它提供了简单易用的API来读取和写入Excel数据。设计文档1主要介绍了EasyExcel的客户端接口设计,以及如何通过这些接口来读取、组装结果并写入Excel,同时提到了配置...

    EL表达式的使用

    - **易于扩展**:允许用户自定义标签库。 - **支持国际化**:方便实现多语言支持。 ##### 3.2 JSTL的使用步骤 1. **创建Web工程**:确保项目支持JSTL 1.1版本。 2. **添加taglib指令**:在JSP页面头部声明使用的...

    Spring4 构建RESTful服务器,输出格式是JSON

    3. 自定义JSON输出:如果需要自定义JSON格式,可以使用`@JsonProperty`、`@JsonIgnore`等注解,或者创建`@JsonRootName`注解的实体类,甚至可以编写`@JsonSerializer`和`@JsonDeserializer`来自定义序列化和反序列化...

    2017XML字符串转对象Object 实现工具

    1.0:标签读取,属性读取,List类型标签实现 以下是 测试说明 原XML: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;HEADER NAME="HEADERname" name_cn="头名称"&gt;标签text值 版本号 时间 地址 &lt;/...

    Java 遍历文件夹内文件

    在标签中,"源码"和"工具"暗示了这篇博客可能提供了实际的代码示例,以及可能涉及到一些实用工具类或者库的使用。在Java中,有时我们会使用第三方库,如Apache Commons IO或Guava,来简化文件操作,这些库提供了更多...

    利用反射,注解将数据输出至Excel中

    在这个例子中,`@ExcelField`是我们自定义的注解,用于指定字段的标题和对齐方式。接下来,我们需要一个工具类来处理反射和注解,读取对象的属性并将其写入Excel: ```java public class ExcelExporter { public ...

    Sort list based on text/numeric/date-time in any column按列

    例如,开发者可能会编写一段脚本,用以读取数据、处理排序,并输出结果,这样的代码就属于源码资源。此外,还有现成的库或框架,如Python的pandas,提供了强大的数据处理和排序功能。 7. **多媒体相关和控件**:这...

    destoon官方标签大全

    **标签调用**是指通过特定的语法结构(即标签)来从数据库中读取并展示数据的过程。它主要包括两个阶段:数据读取和数据显示。 ##### 1. 数据读取 数据读取阶段主要涉及以下几个方面: - **调用条件(Condition)*...

    web test LoadRunner fuction_list

    2. **Web函数库**:如`web_url`用于发送HTTP请求,`web_reg_save_param`用于提取页面上的动态参数,`web_image_check`用于检查图片是否正确加载,`web_custom_request`用于自定义HTTP请求等。 3. **性能指标监控**...

    JAVA对象序列化保存为XML文件的工具类

    在这些情况下,可能需要使用更强大的库,如JAXB(Java Architecture for XML Binding)或DOM(Document Object Model)API来实现更精细的控制。然而,对于简单的对象序列化需求,`XMLEncoder`和`XMLDecoder`是相当...

    s7-200库 格雷码.rar

    标签 "西门子PLC程序" 明确指出了这是与西门子PLC相关的编程代码,可能包括了梯形图(Ladder Diagram)、结构文本(Structured Text)、语句表(Statement List)或其他编程语言的程序。 总结来说,这个压缩包 "s7-...

    jxls 所有的jar包

    - **jxls-core.jar**:这是Jxls的核心库,包含基本的处理逻辑和API,用于读取模板,应用转换规则,以及生成输出Excel文件。 - **jxls-poi.jar**:基于Apache POI,提供了对Microsoft Excel文件格式的支持,允许...

    记录一次使用poi-tl将数据填充到docx中并下载(单独下载docx,批量下载zip)

    5. **自定义标签和解析规则** poi-tl默认使用`{{ }}`作为占位符,但可以根据需要自定义。此外,还可以通过`@`符号添加额外的信息,比如图片URL(`[@imgUrl]`),并在代码中处理这些特殊标签。 6. **处理复杂结构** ...

    java 的学习帮助资料

    - EL表达式可以在JSP页面、JSP标签属性以及JSP自定义标签中使用。 3. EL有效表达式: - 文字:EL支持直接的文本值,如`${"Hello World"}`。 - 操作符:包括算术、比较和逻辑操作符,如+、-、*、/、==、&gt;、&lt;等。 ...

    易思ESPCMS企业建站管理系统 P8.19042801 稳定版.zip

    [修复]:在手机中的goods_list模板中,所有文章都一样的输出 [修复]:当错误次数过多的时候,后台提示语句为空。 [修复]:多个不同的安全漏洞 [修复]:当内容为自定义的编辑框数据时,自定义的内容进行转换输出...

Global site tag (gtag.js) - Google Analytics