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

📄 strutsutil.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:   StrutsUtil.java

package org.apache.struts2.util;

import com.opensymphony.xwork2.ObjectFactory;
import com.opensymphony.xwork2.util.TextUtils;
import com.opensymphony.xwork2.util.ValueStack;
import java.io.*;
import java.net.URLEncoder;
import java.util.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.views.jsp.ui.OgnlTool;
import org.apache.struts2.views.util.UrlHelper;

// Referenced classes of package org.apache.struts2.util:
//			ListEntry, ClassLoaderUtils

public class StrutsUtil
{
	static class ServletOutputStreamWrapper extends ServletOutputStream
	{

		StringWriter writer;

		public void write(int aByte)
		{
			writer.write(aByte);
		}

		ServletOutputStreamWrapper(StringWriter aWriter)
		{
			writer = aWriter;
		}
	}

	static class ResponseWrapper extends HttpServletResponseWrapper
	{

		StringWriter strout;
		PrintWriter writer;
		ServletOutputStream sout;

		public String getData()
		{
			writer.flush();
			return strout.toString();
		}

		public ServletOutputStream getOutputStream()
		{
			return sout;
		}

		public PrintWriter getWriter()
			throws IOException
		{
			return writer;
		}

		ResponseWrapper(HttpServletResponse aResponse)
		{
			super(aResponse);
			strout = new StringWriter();
			sout = new ServletOutputStreamWrapper(strout);
			writer = new PrintWriter(strout);
		}
	}


	protected static final Log log = LogFactory.getLog(org/apache/struts2/util/StrutsUtil);
	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected Map classes;
	protected OgnlTool ognl;
	protected ValueStack stack;

	public StrutsUtil(ValueStack stack, HttpServletRequest request, HttpServletResponse response)
	{
		classes = new Hashtable();
		ognl = OgnlTool.getInstance();
		this.stack = stack;
		this.request = request;
		this.response = response;
	}

	public Object bean(Object aName)
		throws Exception
	{
		String name = aName.toString();
		Class c = (Class)classes.get(name);
		if (c == null)
		{
			c = ClassLoaderUtils.loadClass(name, org/apache/struts2/util/StrutsUtil);
			classes.put(name, c);
		}
		return ObjectFactory.getObjectFactory().buildBean(c, stack.getContext());
	}

	public boolean isTrue(String expression)
	{
		Boolean retVal = (Boolean)stack.findValue(expression, java/lang/Boolean);
		if (retVal == null)
			return false;
		else
			return retVal.booleanValue();
	}

	public Object findString(String name)
	{
		return stack.findValue(name, java/lang/String);
	}

	public String include(Object aName)
		throws Exception
	{
		return include(aName, request, response);
	}

	/**
	 * @deprecated Method include is deprecated
	 */

	public String include(Object aName, HttpServletRequest aRequest, HttpServletResponse aResponse)
		throws Exception
	{
		ResponseWrapper responseWrapper;
		RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aName.toString());
		if (dispatcher == null)
			throw new IllegalArgumentException((new StringBuilder()).append("Cannot find included file ").append(aName).toString());
		responseWrapper = new ResponseWrapper(aResponse);
		dispatcher.include(aRequest, responseWrapper);
		return responseWrapper.getData();
		Exception e;
		e;
		e.printStackTrace();
		throw e;
	}

	public String urlEncode(String s)
	{
		return URLEncoder.encode(s, "UTF-8");
		UnsupportedEncodingException e;
		e;
		return s;
	}

	public String buildUrl(String url)
	{
		return UrlHelper.buildUrl(url, request, response, null);
	}

	public Object findValue(String expression, String className)
		throws ClassNotFoundException
	{
		return stack.findValue(expression, Class.forName(className));
	}

	public String getText(String text)
	{
		return (String)stack.findValue((new StringBuilder()).append("getText('").append(text).append("')").toString());
	}

	public String getContext()
	{
		return request != null ? request.getContextPath() : "";
	}

	public List makeSelectList(String selectedList, String list, String listKey, String listValue)
	{
		List selectList = new ArrayList();
		Collection selectedItems = null;
		Object i = stack.findValue(selectedList);
		if (i != null)
			if (i.getClass().isArray())
				selectedItems = Arrays.asList((Object[])(Object[])i);
			else
			if (i instanceof Collection)
			{
				selectedItems = (Collection)i;
			} else
			{
				selectedItems = new ArrayList();
				selectedItems.add(i);
			}
		Collection items = (Collection)stack.findValue(list);
		if (items != null)
		{
			Object key;
			Object value;
			boolean isSelected;
			for (Iterator iter = items.iterator(); iter.hasNext(); selectList.add(new ListEntry(key, value, isSelected)))
			{
				Object element = iter.next();
				key = null;
				if (listKey == null || listKey.length() == 0)
					key = element;
				else
					key = ognl.findValue(listKey, element);
				value = null;
				if (listValue == null || listValue.length() == 0)
					value = element;
				else
					value = ognl.findValue(listValue, element);
				isSelected = false;
				if (value != null && selectedItems != null && selectedItems.contains(value))
					isSelected = true;
			}

		}
		return selectList;
	}

	public String htmlEncode(Object obj)
	{
		if (obj == null)
			return null;
		else
			return TextUtils.htmlEncode(obj.toString());
	}

	public int toInt(long aLong)
	{
		return (int)aLong;
	}

	public long toLong(int anInt)
	{
		return (long)anInt;
	}

	public long toLong(String aLong)
	{
		if (aLong == null)
			return 0L;
		else
			return Long.parseLong(aLong);
	}

	public String toString(long aLong)
	{
		return Long.toString(aLong);
	}

	public String toString(int anInt)
	{
		return Integer.toString(anInt);
	}

}

⌨️ 快捷键说明

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