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;
	}

}
最近下载更多
sunlea  LV17 3月21日
过桥次米线  LV2 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  LV54 2022年3月22日
and123456  LV11 2022年2月14日
最近浏览更多
 LV7 3月25日
sunlea  LV17 3月21日
过桥次米线  LV2 2月25日
952773464 1月15日
暂无贡献等级
codeshare  LV3 1月3日
WBelong  LV7 2023年12月25日
ziv5466123  LV7 2023年12月14日
陆程江  LV2 2023年5月29日
hihhhh  LV6 2023年4月6日
北方菜  LV11 2022年12月31日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友