forEach标签
public class ForEachTag extends SimpleTagSupport {
private Object items;private String var;
public void setItems(Object items) {
this.items = items;
}
public void setVar(String var) {
this.var = var;
}
@Override
public void doTag() throws JspException, IOException {
//遍历items的数据
PageContext pageContext=(PageContext)this.getJspContext();
if(items instanceof List){
List<Student> list=(List)items;
for(Student s:list){
//把每一个对象放入域中
pageContext.setAttribute(var,s);
//显示标签体的内容
this.getJspBody().invoke(null);
}
}
if(items instanceof Map){
Map map=(Map)items;
Set<Entry> set=map.entrySet();
for(Entry entry:set){
pageContext.setAttribute(var, entry);
this.getJspBody().invoke(null);
}
}
//简化代码
Collection colls=null;
if(items instanceof List){
colls=(Collection)items;
}
if(items instanceof Map){
Map map=(Map)items;
Set set=map.entrySet();
colls=(Collection)set;
}
for(Object obj:colls){
pageContext.setAttribute(var, obj);
this.getJspBody().invoke(null);
}
}
}