package com.ycsoft.commons.abstracts; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.ycsoft.beans.system.SOptr; import com.ycsoft.commons.constants.Environment; import com.ycsoft.commons.helper.JsonHelper; import com.ycsoft.commons.helper.StringHelper; import com.ycsoft.commons.pojo.Root; /** * <p>业务<code>Action</code>的基类, * 包含操作员等大部分业务模块<code>Action</code>共有的信息。</p> * * @author hh */ public class BaseAction extends AbstractAction{ /** * */ private static final long serialVersionUID = -4798784078940038896L; protected SOptr optr ; protected Root root ; //定义JSON返回结果类型 protected static final String JSON_SIMPLEOBJ = "json-simpleObj"; protected static final String JSON_RECORDS = "json-records"; protected static final String JSON_OTHER = "json-others"; protected static final String JSON_PAGE = "json-page"; protected static final String JSON_SUCCESS = "json-success"; protected static final String JSON = "json"; protected static final String EXCEL = "excel"; /** * 查询服务器session保存的optr * @return * @throws Exception */ public String querySessionOptr() throws Exception{ Object obj=getSession().getAttribute(Environment.USER_IN_SESSION_NAME); if(obj!=null&&StringHelper.isNotEmpty(obj.toString())){ getRoot().setSimpleObj(JsonHelper.toObject(obj.toString(), SOptr.class)); } return JSON_SIMPLEOBJ; } /** * <p>当使用Ajax上传文件时,返回该结果类型, * 将需要返回的JSON内容设置到当前的request作用域中</p> * <p> examples: * <pre> * getProxyRoot().setSimpleObj("文件上传成功!"); * return AJAX_UPLOAD; * </pre> * </p> */ protected static final String AJAX_UPLOAD = "ajax-upload"; protected Integer start ; protected Integer limit ; /** * @see {@link #AJAX_UPLOAD} */ @Deprecated protected String retrunNone(String msg) throws IOException { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); msg = msg.replaceAll("'", " "); out.print("{success:true,msg:'"+msg+"'}"); out.flush(); out.close(); return NONE; } /** * @see {@link #AJAX_UPLOAD} */ @Deprecated protected String returnList(List<?> list) throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String records = JsonHelper.fromObject(list); out.print("{success:true,records : "+records+"}"); out.flush(); out.close(); return NONE; } public Root getRoot() { return root = root == null ? new Root() : root; } public Root getProxyRoot(){ Root root= this.getRoot(); request.setAttribute("root", root); return root; } public void setRoot(Root rootOfPager) { root = rootOfPager; } public SOptr getOptr() { return optr; } public void setOptr(SOptr optr) { this.optr = optr; } public Integer getStart() { return start; } public void setStart(Integer start) { this.start = start; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } }