package com.cxstock.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.struts2.ServletActionContext;

import com.cxstock.biz.power.dto.UserDTO;
import com.cxstock.utils.pubutil.Page;
import com.cxstock.utils.system.Constants;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class BaseAction extends ActionSupport {

	private int limit; // 每页显示多少行
	private int start; // 开始行

	public void outJsonString(String str) {
		getResponse().setContentType("text/json;charset=UTF-8");
		outString(str);
	}

	public void outString(String str) {
		try {
			PrintWriter out = getResponse().getWriter();
			out.print(str);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@SuppressWarnings("unchecked")
	public void outListString(List list) {
		try {
			JSONArray jsonArray = new JSONArray();
			if (list.size() > 0) {
				jsonArray = JSONArray.fromObject(list);
			}
			String jsonString = "{total:" + list.size() + ",root:"
					+ jsonArray.toString() + "}";
			outString(jsonString);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void outObjectString(Object obj) {
		JSONObject josnobj = new JSONObject();
		if (obj != null) {
			josnobj = JSONObject.fromObject(obj);
		}
		String jsonString = "{success:true,data:" + josnobj.toString() + "}";
		outString(jsonString);
	}

	public void outObjString(Object obj) {
		JSONArray jsonArray = new JSONArray();
		if (obj != null) {
			jsonArray = JSONArray.fromObject(obj);
		}
		String jsonString = "{success:true,data:" + jsonArray.toString() + "}";
		outString(jsonString);
	}

	public void outPageString(Page page) {

		JSONArray jsonArray = new JSONArray();
		if (page.getRoot().size() > 0) {
			jsonArray = JSONArray.fromObject(page.getRoot());
		}
		String jsonString = "{total:" + page.getTotal() + ",root:"
				+ jsonArray.toString() + "}";
		outString(jsonString);
	}
	
	@SuppressWarnings("unchecked")
	public void outTreeJsonList(List list){
		JSONArray jsonArray = new JSONArray();
		if (list.size() > 0) {
			jsonArray = JSONArray.fromObject(list);
		}
		outString(jsonArray.toString());
	}

	public void outXMLString(String xmlStr) {
		getResponse().setContentType("application/xml;charset=UTF-8");
		outString(xmlStr);
	}
	
	public void outError() {
		outString("{success:false,errors:'操作失败!'}");
	}

	/**
	 * 获得request
	 * 
	 * @return
	 */
	public HttpServletRequest getRequest() {
		return ServletActionContext.getRequest();
	}

	/**
	 * 获得response
	 * 
	 * @return
	 */
	public HttpServletResponse getResponse() {
		return ServletActionContext.getResponse();
	}

	/**
	 * 获得session
	 * 
	 * @return
	 */
	public HttpSession getSession() {
		return getRequest().getSession();
	}

	/**
	 * 获得servlet上下文
	 * 
	 * @return
	 */
	public ServletContext getServletContext() {
		return ServletActionContext.getServletContext();
	}

	public String getRealyPath(String path) {
		return getServletContext().getRealPath(path);
	}

	public UserDTO getUserDTO() {
		return (UserDTO) getSession().getAttribute(Constants.USERINFO);
	}

	// 获得uploadfile路径的实际目录
	public String getUpdateFilePath() {
		return getRealyPath("/").concat(
				getServletContext().getInitParameter(Constants.FILE_DIRECTORY));
	}
	
	
	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

}
最近下载更多
educationAAA  LV11 2024年7月5日
sunlea  LV20 2024年3月21日
过桥次米线  LV2 2024年2月25日
小屁孩  LV7 2023年4月30日
bluesky2016  LV15 2022年7月4日
testuser1234567  LV24 2022年6月30日
guoyan  LV12 2022年4月22日
粉娇你几  LV3 2022年4月9日
1029162867  LV13 2022年4月2日
wanglinddad  LV55 2022年3月22日
最近浏览更多
Zyy19820821  LV2 2024年9月16日
陈小灏  LV18 2024年6月26日
zhengguangshun  LV4 2024年6月25日
educationAAA  LV11 2024年6月23日
疯狂小太阳 2024年6月18日
暂无贡献等级
 LV7 2024年3月25日
sunlea  LV20 2024年3月21日
过桥次米线  LV2 2024年2月25日
952773464 2024年1月15日
暂无贡献等级
codeshare  LV3 2024年1月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友