📄 iteratetag.java
字号:
package cn.com.thinkbank.tags;
import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.beanutils.PropertyUtils;
public class IterateTag extends TagSupport {
private String id;
private String name;
private String property;
private Iterator iterator;
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setProperty(String property) {
this.property = property;
}
public int doStartTag() throws JspException {
Object object = TagUtils.lookup(name, pageContext);
try {
if (property != null) {
object = PropertyUtils.getProperty(object, property);
}
Collection coll = (Collection) object;
iterator = coll.iterator();
} catch (IllegalAccessException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
if (iterator.hasNext()) {
Object obj = iterator.next();
pageContext.setAttribute(id, obj);
return EVAL_BODY_INCLUDE;
} else {
return SKIP_BODY;
}
}
public int doAfterBody() throws JspException {
if (iterator.hasNext()) {
Object obj = iterator.next();
pageContext.setAttribute(id, obj);
return EVAL_BODY_AGAIN;
} else {
return SKIP_BODY;
}
}
public int doEndTag() throws JspException {
pageContext.removeAttribute(id);
iterator = null;
return EVAL_PAGE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -