⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iterationtag.java

📁 北大青鸟在线考试系统,包括在线考试模块,教师管理模块,系统管理模块
💻 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 + -