import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.ServletConfigAware;
import org.springframework.web.context.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author wu0018
* @version 1.0.0
* @since 2012-4-5下午3:12:22
*/
public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware, ServletConfigAware, ServletContextAware {
private static final long serialVersionUID = 5105067211451638888L;
private final static Logger log = LoggerFactory.getLogger(BaseAction.class);
protected ServletRequest request = null;
protected ServletResponse response = null;
protected ServletContext context = null;
protected ServletConfig config = null;
protected JSONObject getJSONObject(String content) throws Exception {
return JSONObject.fromObject(content);
}
protected JSONArray getJSONArray(String content) throws Exception {
return JSONArray.fromObject(content);
}
protected String getRequestContent() {
StringBuffer buf = new StringBuffer();
InputStream is = null;
try {
is = new BufferedInputStream(request.getInputStream());
if (null != is) {
while (true) {
byte[] b = new byte[1024];
if (is.read(b) != -1) {
buf.append(new String(b, Constant.encoding));
} else {
break;
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buf.toString();
}
protected String render(String text, String contentType) {
try {
response.setContentType(contentType);
response.getWriter().write(text);
} catch (IOException e) {
log.error(e.getMessage(), e);
}
return null;
}
protected String renderText(String text) {
return render(text, "text/plain;charset=utf-8");
}
protected String renderHtml(String html) {
return render(html, "text/html;charset=utf-8");
}
protected String renderXML(String xml) {
return render(xml, "text/xml;charset=utf-8");
}
protected String renderJSON(String json) {
//return render(StringEscapeUtils.escapeJavaScript(json), "application/json;charset=utf-8");
return render(json, "application/json;charset=utf-8");
}
protected String renderJSON(Map<String, Object> jsonMap) {
JSON json = JSONSerializer.toJSON(jsonMap);
return render(json.toString(), "application/json;charset=utf-8");
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext context) {
this.context = context;
}
@Override
public void setServletConfig(ServletConfig config) {
this.config = config;
}
}