這篇文章主要介紹了jsp簡單自定義標簽的forEach遍歷及轉義字符,需要的朋友可以參考下
接著昨天的,如果<forEach>中的items類型是map或者Collection類型的,怎樣使用增強for循環; 首先還是創建一個標簽處理器類,定義兩個屬性,String var; Object items; 因為items要迭代各種集合,所以要使用Object; 然后重寫setter方法; 聲明一個成員變量,集合類型的, 和上面兩個屬性是不相同的,這個是用在類里的, 在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);&新聞熱點
疑難解答