📄 iterationtag.java
字号:
package TestClass;
import java.util.ArrayList;
import java.util.Iterator;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class IterationTag extends BodyTagSupport
{
//标记属性
private String type;
private ArrayList arraylist;
//内部成员
private Iterator iterator;
/*
功能:设置标志体内嵌变量的类型
参数s: 标志体内嵌变量的类型字符串
*/
public void setType(String s)
{
this.type=s;
}
/*
功用: 存入ArrayList集合在标志内实现while循环
参数arry: 存放实体Bean的ArrayList集合
*/
public void setArraylist(ArrayList arry)
{
arraylist=arry;
}
/*
功用: 标志开始时调用
先从 ArrayList 集合中产生 iterator 对象实现循环访问
再用 hasNext() 方法判断是否还有下一项,
如果有就将处理交给下一项,这里是 doAfterBody() 方法继续处理,
没有就返回 SKIP_BODY 跳出标志体
*/
public int doStartTag() throws JspException
{
iterator=arraylist.iterator();
if(iterator.hasNext())
{
pageContext.setAttribute(getId(),iterator.next());
return EVAL_BODY_INCLUDE;
}
else
{
return SKIP_BODY;
}
}
/*
功用: 使用 ArrayList 集合的 iterator 实现循环。
首先用 hasNext() 方法判断是否还有下一项,
如果有返回 EVAL_BODY_AGAIN 继续标记体防卫下一个 iterator,
没有返回 SKIP_BODY 跳出标记体
*/
public int doAfterBody() throws JspException
{
if(iterator.hasNext())
{
pageContext.setAttribute(getId(),iterator.next());
return EVAL_BODY_AGAIN;
}
else
{
return SKIP_BODY;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -