在写自定义标签时候是不是感觉很烦啊,其实人家也是这样认为的,于是我们的jsp新的标准对标签进行了更改,使我们用起来更简单。到底哪里简单呢?看看代码再说咯:

还是老规矩,先上一个标签的逻辑类:

1.

package com.java.tag;

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

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import javax.servlet.jsp.tagext.TagSupport;

public class IterateSimpleTag extends SimpleTagSupport{

/**
*
*/
private static final long serialVersionUID = 1L;

private String var;
private String items;

public String getVar() {
return var;
}

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

public String getItems() {
return items;
}

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

@Override
public void doTag() throws JspException, IOException {
Object value=this.getJspContext().getAttribute(items);//直接名为items的集合
if(value!=null && value instanceof List){//如果集合为List类型
Iterator iter=((List)value).iterator();//那么将集合转为iterator
while(iter.hasNext()){//循环iterator
this.getJspContext().setAttribute(var, iter.next());//直接把iterator的元素塞给var
this.getJspBody().invoke(null); // 响应页面---var显示出来
}
}
}

}

2.配置我们的描述文件吧~

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>javaTag</short-name>

<tag>
<name>iterate2</name>
<tag-class>
com.java.tag.IterateSimpleTag
</tag-class>

<!--此处必须这样写--->
<body-content>scriptless</body-content>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

最新文章

  1. git error: unable to rewind rpc post data - try increasing http.postBuffer
  2. 【hihoCoder】1121:二分图一&#183;二分图判定
  3. POJ1236Network of Schools[强连通分量|缩点]
  4. 从Prototype学习JavaScript面向对象编程
  5. eclipse svn
  6. 创建优雅表格的8个js工具
  7. Java 实现Md5算法
  8. JS的substr与substring的区别
  9. QNX驱动开发——中断处理(转载)
  10. 关于ASP.NET Web Api的HelpPage文档注释问题
  11. 分布式版本控制git常见问题之gitignore冲突
  12. SQL Server 历史SQL执行记录
  13. 马凯军201771010116《面向对象与程序设计Java》第十七周学习总结
  14. 汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等
  15. 一言难尽的js变量提升
  16. mysql的innodb和myisam的区别和应用场景
  17. asp.net 连接SQL Server 数据库并进行相关操作
  18. LightOJ 1151 Snakes and Ladders(概率DP + 高斯消元)
  19. poi导出excel合并单元格(包括列合并、行合并)
  20. linux centOS6 nexus 开启自动启动

热门文章

  1. [解决问题]SSH连不上Ubuntu虚拟机解决办法
  2. 02_mysql卸载和安装
  3. CF-845C
  4. 1.5 webshell文件上传漏洞分析溯源(1~4)
  5. Gym - 100851A Adjustment Office(O(1)求行列和)
  6. C# ConfigurationManager 类的使用
  7. EF外键保存数据
  8. Git 时光穿梭鸡 管理修改
  9. html解决的兼容问题
  10. lca最近公共祖先(st表/倍增)