在baseAction中对数据进行get和set方法,然后在一个拦截器中,将有效数据进行封转。封转到数据sessionUserVO里面,在拦截器里面吧数据进行封转然后放入缓冲中,供action调用。这种方法减少里数据的调用的次数,action寻找有效的参数更加方便。
public String returnCode="";
/** 返回信息 */
public String returnMsg="";
/** 用户ID **/
public long userId=0;
/** 用户名 */
public String userName="";
/** 用户token **/
public String userToken="";
/** 用户VO*/
public SessionUserVO sessionUserVO;
get和set方法
在拦截器里面进行数据的封装
public String intercept(ActionInvocation invocation) throws Exception {
Action action = (Action) invocation.getAction();
if (action instanceof BaseAction) {
BaseAction baseAction = (BaseAction) action;
long userId= baseAction.getUserId();
String userToken = baseAction.getUserToken();
if (userId == 0 || userToken == null || userToken.equals("")) {
return AuthorConstant.INVALID_LOGIN;
}
SessionUserVO sessionUser = (SessionUserVO) MemcacheUtil.getSessionObject(String.valueOf(userId));
if (sessionUser != null && !sessionUser.getUserToken().equals(userToken)) {
return AuthorConstant.INVALID_LOGIN;
}
if (sessionUser == null) {
User user = userDao.getUser(userId,userToken);
if (user == null) {
return AuthorConstant.INVALID_LOGIN;
}
sessionUser = new SessionUserVO();
sessionUser.setUserId(user.getUserId());
sessionUser.setUserName(user.getUserName());
sessionUser.setUserToken(user.getUserToken());
sessionUser.setLoginTime(user.getLoginTim());
sessionUser.setOnlineTime(user.getOnlineTime());
sessionUser.setTotalInfullNum(user.getTotalInfullNum());
SessionUtil.setMemcachedUser(sessionUser);
}
baseAction.setUserName(sessionUser.getUserName());
baseAction.setSessionUserVO(sessionUser);
}
return invocation.invoke();
分享到:
相关推荐
BaseAction.java
有关BaseAction,DispatchAction,XXXAction的一个小测试工程,希望对刚接触BaseAction的人有用
很好用的工具类,希望帮助到大家
utils类及baseAction 非常详细哦
action的超类 其他类的继承它,里面有详细说明
包含WEB开发的Servlet,Struts2等开发所需的构架文件,底层的BaseAction,JDBC等底层封装
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro框架进行...
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口是针对编程的,而不是针对实现编程的。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro...
TYPO3扩展routes 此扩展使您可以将URL终结点与某些Extbase Action绑定。 简而言之,您可以为TYPO3项目创建一个API。 特征: ... 开箱即用。 您的路线的其他中间件。... 用于一般信息的简单模块。...
简单的ssh项目,泛型BaseAction配置,简单注解配置,applicationContext.xml配置,jar包地址 链接:https://pan.baidu.com/s/14NkywuhG6mESyhE1VMkhOQ 密码:en19
具体实现 我现在的程序是基于ThinkPHP框架的,我们会有一个父类控制器,下面我就把这个设置cookie的代码加到这个BaseAction里面的_initialize()函数中,这样程序就大大简化工作量了。 复制代码 代码如下:$refer = ...
代码清晰,分层清楚,jstl页面多层循环,BaseAction整合业务层。myeclipse开发,包含包图片,没有具体包。注意解决包冲突。
jQuery EasyUI与Struts2 的整合—属性驱动篇 如果你是用模型驱动,或者是直接把属性写在action里面,你不会...BaseAction.java ApproveAction.java approveList.jsp jQuery EasyUI与Struts2 的整合—属性驱动篇.docx
因此,在对本系统进行架构设计的时候,考虑建立一个抽象的BaseAction类,该类继承LookupDispatchAction,实现LookupDispatchAction类中的getKeyMethodMap方法,在方法中返回本系统中请求参数值与资源文件中参数值的...
中间业务层是通过Spring框架实现的,首先建立一个 BaseAction,它继承了Action类,而其他定义的Action都要继承这个BaseAction。这个B aseAction需要导入AppContext工具类,这个AppContext需要导入Spring中 ;这样一个...
************************************************************************************* ...运行成功后输入 http://localhost:8080/MySSH1.0/baseAction!tologin.action 如果数据库中插入数据表明整合成功!
Service继承了baseSevice,baseSevice已经声明了一些基本方法,需要自己定制的方法在service中声明,然后在...BaseService需要一个Dao对实体进行操作,如果要使用BaseAction中的方法,需要把Dao注入到BaseService中。
public class SupplierSort_Action extends BaseAction implements ModelDriven<SupplierSort>{ //调用数据访问层 SupplierSort supplierSort = new SupplierSort(); public SupplierSort getModel(){ return ...
struts2、hibernate3、...2:通过基础类和接口BaseDao、BaseDaoImpl、BaseAction类降低代码重用 3:单元测试通过(测试时新建一个名为oa的空数据库,密码自己改) 4:主要是依照传智播客的汤阳光老师讲的OA项目编写的