`

自定义标签库读取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>
分享到:
评论

相关推荐

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

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

    freemarker语法完整版

    如果x=1 输出 1 2, x=2 输出 2, x=3 输出d list, break 语法 Freemarker代码 &lt;#list sequence as item&gt; ... &lt;#if item = "spring"&gt;&lt;#break&gt;&lt;/#if&gt; ... &lt;/#list&gt; &lt;#list sequence as item&gt; ... ...

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

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

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    可是,servlet也存在一个严重问题,因为所有的HTML输出必须像下面这段代码那样封装在string对象里,所以servlet将HTML标签发送给浏览器时既繁琐又容易出错: 这大大增加了编程的难度,而且即便是对网页在表现方面的...

    JAVA上百实例源码以及开源项目

    Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP  Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...

    vc++ 应用源码包_1

    自定义的标签控件对话框。 Undo_demo.zip undo_src.zip 在VC中实现Undo和Redo功能。 VC 利用底层键盘钩子屏蔽任意按键MaskKey 动态链接库实现钩子,然后程序调用。 VC 透明窗口效果的电子标尺源代码 实现了屏幕...

    vc++ 应用源码包_2

    自定义的标签控件对话框。 Undo_demo.zip undo_src.zip 在VC中实现Undo和Redo功能。 VC 利用底层键盘钩子屏蔽任意按键MaskKey 动态链接库实现钩子,然后程序调用。 VC 透明窗口效果的电子标尺源代码 实现了屏幕...

    vc++ 应用源码包_6

    自定义的标签控件对话框。 Undo_demo.zip undo_src.zip 在VC中实现Undo和Redo功能。 VC 利用底层键盘钩子屏蔽任意按键MaskKey 动态链接库实现钩子,然后程序调用。 VC 透明窗口效果的电子标尺源代码 实现了屏幕...

    vc++ 应用源码包_5

    自定义的标签控件对话框。 Undo_demo.zip undo_src.zip 在VC中实现Undo和Redo功能。 VC 利用底层键盘钩子屏蔽任意按键MaskKey 动态链接库实现钩子,然后程序调用。 VC 透明窗口效果的电子标尺源代码 实现了屏幕...

    vc++ 应用源码包_3

    自定义的标签控件对话框。 Undo_demo.zip undo_src.zip 在VC中实现Undo和Redo功能。 VC 利用底层键盘钩子屏蔽任意按键MaskKey 动态链接库实现钩子,然后程序调用。 VC 透明窗口效果的电子标尺源代码 实现了屏幕...

    freemarker总结

    list指令是一个迭代输出指令,用于迭代输出数据模型中的集合,list指令的语法格式如下: &lt;#list sequence as item&gt; ... &lt;/#list&gt; 上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    1.1.4 要点4:ASP.NET运行在公共语言运行库内 1.1.5 要点5:ASP.NET是面向对象的 1.1.6 要点6:ASP.NET支持所有的浏览器 1.1.7 要点7:ASP.NET易于部署和配置 1.2 ASP.NET的演变 1.2.1 ASP.NET1.0和ASP...

    Java资源包01

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    ASP.NET4高级程序设计(第4版) 3/3

    1.1.4 要点4:ASP.NET运行在公共语言运行库内 6 1.1.5 要点5:ASP.NET是面向对象的 7 1.1.6 要点6:ASP.NET支持所有的浏览器 8 1.1.7 要点7:ASP.NET易于部署和配置 8 1.2 ASP.NET的演变 9 1.2.1 ASP.NET...

    vc++ 开发实例源码包

    自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_Demo 自绘List控件的实例。 Smile 自绘List控件的实例。 SOCK登录SSL加密网站 ...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例059 将数据库中的数据表添加到ListControl控件 实例060 利用ListControl控件浏览数据 实例061 利用ListControl控件制作导航界面 实例062 在列表视图中拖动视图项 实例063 利用列标题对列表视图进行数据排序...

Global site tag (gtag.js) - Google Analytics