您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

jsp简单自定义标签的forEach遍历及转义字符

来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:43 点击:
接着昨天的,如果<forEach>中的items类型是map或者Collection类型的,怎样使用增强for循环;
首先还是创建一个标签处理器类,定义两个属性,String var; Object items;
因为items要迭代各种集合,所以要使用Object;
然后重写setter方法; www.2cto.com
声明一个成员变量,集合类型的, 和上面两个属性是不相同的,这个是用在类里的,
在items的setter方法中,判断items的类型
然后继承他的doTag方法;
public class ForEachTag2 extends SimpleTagSupport {
 
private String var;
private Object items;
private Collection collection;
      public void setVar(String var){
       this.var=var;
      }
      public void setItems(Object items){
       this.items=items;
      
       if(items instanceof Map){
       Map map  = (Map) items;
       collection = map.entrySet();
       }
       if(items instanceof Collection){//set list
       collection =(Collection) items;
      
       }
       if(items.getClass().isArray()){
       collection = new ArrayList();
       int len = Array.getLength(items);
       for(int i=0;i<len;i++){
       Object obj= Array.get(items, i);
       collection.add(obj);
       }
      
       }
      
      }
@Override
public void doTag() throws JspException, IOException {
       Iterator iterator = collection.iterator();
       while(iterator.hasNext()){
       
       Object obj = iterator.next();
       this.getJspContext().setAttribute(var, obj);
       this.getJspBody().invoke(null);
       }
    
}
     
}
然后,写tld描述标签
 <tag>
<name>forEach2</name>
<tag-class>com.csdn.items.ForEachTag2</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>var</name>
    <required>true</required>
   
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • JSP与Servlet
  • 打开一个jsp页面默认查询所有数据,调用action
  • 使用JSP标签库验证用户的输入(2)完
  • 自己动手写MiniBBS系列(基本篇)之用户登录
  • JSP取当前日期
  • WIN98/2000下的jsp服务器
  • 自定义JSP标签(tag)浅议
  • Struts学习傻瓜式入门篇
  • JSP内建对象(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1