iteratetag.java

来自「自定义标记」· Java 代码 · 共 68 行

JAVA
68
字号
package body;

import java.util.Collection;
import java.util.Iterator;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class iterateTag extends BodyTagSupport {
	private String name;// 在pageContext中标识的一个属性名

	private Iterator it;// 要迭代的对象

	private String type;// it中对象的类型

	public void setCollection(Collection collection) {
		if (collection.size() > 0)
			it = collection.iterator();
	}

	// ----标签开始时调用此方法-------
	public int doStartTag() {
		if (it == null)
			return SKIP_BODY;
		else
			return continueNext(it);
	}

	// ----标签体执行完后调用此方法----
	public int doAfterBody() {
		return continueNext(it);
	}

	// ----标签结束时调用此方法-------
	public int doEndTag() {
		try {
			if (bodyContent != null)
				bodyContent.writeOut(bodyContent.getEnclosingWriter());
		} catch (Exception e) {
			System.out.println(e);
		}
		return EVAL_PAGE;
	}

	// ----迭代----
	protected int continueNext(Iterator it) {
		if (it.hasNext()) {
			pageContext.setAttribute(name, it.next(), pageContext.PAGE_SCOPE);
			return EVAL_BODY_TAG;
		} else
			return SKIP_BODY;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?