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

📄 iteratorcomponent.java

📁 struts 2 核心包 的源码 有错误是难免的
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   IteratorComponent.java

package org.apache.struts2.components;

import com.opensymphony.xwork2.util.ValueStack;
import java.io.Writer;
import java.util.Iterator;
import java.util.Map;
import org.apache.struts2.util.MakeIterator;
import org.apache.struts2.views.jsp.IteratorStatus;

// Referenced classes of package org.apache.struts2.components:
//			Component

public class IteratorComponent extends Component
{

	protected Iterator iterator;
	protected IteratorStatus status;
	protected Object oldStatus;
	protected org.apache.struts2.views.jsp.IteratorStatus.StatusState statusState;
	protected String statusAttr;
	protected String value;

	public IteratorComponent(ValueStack stack)
	{
		super(stack);
	}

	public boolean start(Writer writer)
	{
		if (statusAttr != null)
		{
			statusState = new org.apache.struts2.views.jsp.IteratorStatus.StatusState();
			status = new IteratorStatus(statusState);
		}
		ValueStack stack = getStack();
		if (value == null)
			value = "top";
		iterator = MakeIterator.convert(findValue(value));
		if (iterator != null && iterator.hasNext())
		{
			Object currentValue = iterator.next();
			stack.push(currentValue);
			String id = getId();
			if (id != null && currentValue != null)
				stack.getContext().put(id, currentValue);
			if (statusAttr != null)
			{
				statusState.setLast(!iterator.hasNext());
				oldStatus = stack.getContext().get(statusAttr);
				stack.getContext().put(statusAttr, status);
			}
			return true;
		} else
		{
			super.end(writer, "");
			return false;
		}
	}

	public boolean end(Writer writer, String body)
	{
		ValueStack stack = getStack();
		if (iterator != null)
			stack.pop();
		if (iterator != null && iterator.hasNext())
		{
			Object currentValue = iterator.next();
			stack.push(currentValue);
			String id = getId();
			if (id != null && currentValue != null)
				stack.getContext().put(id, currentValue);
			if (status != null)
			{
				statusState.next();
				statusState.setLast(!iterator.hasNext());
			}
			return true;
		}
		if (status != null)
			if (oldStatus == null)
				stack.getContext().put(statusAttr, null);
			else
				stack.getContext().put(statusAttr, oldStatus);
		super.end(writer, "");
		return false;
	}

	public void setStatus(String status)
	{
		statusAttr = status;
	}

	public void setValue(String value)
	{
		this.value = value;
	}
}

⌨️ 快捷键说明

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