SSH框架开发使用的BaseAction

本文介绍了一个自定义的Struts2基类Action,该类扩展了ActionSupport并实现了多个Struts2拦截器接口。文章详细解释了如何通过此类进行请求处理、参数接收及常用操作,如获取当前登录用户、角色等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import org.acegisecurity.context.SecurityContextHolder;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.CookiesAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;

import com.hnjz.core.model.DicData;
import com.hnjz.core.model.Org;
import com.hnjz.core.model.Role;
import com.hnjz.core.model.User;
import com.hnjz.core.web.action.PageList;
import com.hnjz.core.web.listener.StaticLoad;
import com.hnjz.sys.search.ErrorPool;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("unchecked")
public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware,
RequestAware, CookiesAware, ParameterAware,
SessionAware, ApplicationAware {
/**
* 当返回值为json时,保存一些特殊处理的介质
*/
protected Map jsonResultMap = new HashMap();

protected HttpServletRequest httpServletRequest;

protected HttpServletResponse httpServletResponse;

protected Map request;

protected Map session;

protected Map application;

protected Map parameters;

protected Map cookiesMap;

protected PageList pl;

protected String first;

protected String success;

protected ErrorPool errorPool;

protected int page;

protected final Log log = LogFactory.getLog(getClass());

private static final long serialVersionUID = 5321284593923166095L;

/**
* 得到当前用户
* @return
*/
public User getCurUser() {

return (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
}

/**
* 得到当前用户的角色
* @return
*/
public Role getCurRole() {
AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
User user = ((User) curdManager.get(User.class, getCurUser().getId()));

return user.getUserRole().iterator().next().getRole();
}

/**
* 得到当前用户所属的行政区划
* @return
*/
public DicData getCurDept() {

AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
User user = ((User) curdManager.get(User.class, getCurUser().getId()));

return user.getDept();
}

/**
* 得到当前用户所属的行政区划
* @return
*/
public Org getCurOrg() {

AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
User user = ((User) curdManager.get(User.class, getCurUser().getId()));
return user.getGxOrg();
}

public void setServletRequest(HttpServletRequest arg0) {
this.httpServletRequest = arg0;

}

public Map getJsonResultMap() {
return jsonResultMap;
}

public void setServletResponse(HttpServletResponse arg0) {
this.httpServletResponse = arg0;

}

public void setRequest(Map arg0) {
this.request = arg0;

}

public HttpServletRequest getHttpServletRequest() {
return httpServletRequest;
}

public void setCookiesMap(Map arg0) {
this.cookiesMap = arg0;

}

public void setParameters(Map arg0) {
this.parameters = arg0;
this.errorPool = new ErrorPool(parameters);
}

public void setSession(Map arg0) {
this.session = arg0;

}

public void setApplication(Map arg0) {
this.application = arg0;

}

public PageList getPl() {
return pl;
}

public void setPl(PageList pl) {
this.pl = pl;
}

public int getPage() {

return page;
}

public String getSuccess() {
return success;
}

public void setSuccess(String success) {
this.success = success;
}

/**
* 通过处理判断列表页面的页码。
*
* @return
*/
public int getPageNum() {
// 读取页码
int pageNum = 1;
if (parameters.get("page") != null) {
String pageStr = ((String[]) parameters.get("page"))[0];
if (StringUtils.isNumeric(pageStr) && StringUtils.isNotBlank(pageStr)) {
pageNum = Integer.parseInt(pageStr);
session.put("search_page", pageNum);
} else if (!"1".equals(first)) {
Integer pageObj = (Integer) session.get("search_page");
if (pageObj != null) {
pageNum = pageObj.intValue();
}
}
}
return pageNum;
}

public String getFirst() {
return first;
}

public void setFirst(String first) {
this.first = first;
}

public void setPage(String page) {
this.page = Integer.parseInt(page);
}
public void setPage(int page) {
this.page = page;
}

/**
* 根据当前用户和外部功能查询所对应代码
* @param userid 当前用户
* @param funcCode 外部功能编码
* @return
*/
protected String getMyFuncCity(String areaid, String funcCode) {
AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
if (StringUtils.isBlank(areaid)) {//如果所属地市为空,返回""
return "";
}

String hsql = "select code from TOutfuncRelation m where m.cityid.id=? and m.functionid.attrName2= ?";
String[] canshu = new String[] {areaid, funcCode };
List list = curdManager.find(hsql, canshu);
if (list.size() > 0) {
return String.valueOf(list.get(0));
}
return "";
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值