📄 strutsutil.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 + -