在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`,一个常见的Action基类,它为其他具体的业务Action提供了一些基础功能和通用逻辑。`BaseAction`通常会包含错误处理、日志记录、请求参数验证等常见操作,以此提高代码的可重用性和可...
总的来说,`Utils` 类是提供通用功能的静态方法集合,而 `BaseAction` 是控制器层的基础类,封装了Web应用中的常见操作。两者都是为了提高代码的复用性和可维护性,降低开发复杂度。在实际项目中,根据具体需求,...
很好用的工具类,希望帮助到大家
`BaseAction`作为所有具体Action类的超类,可以封装共有的方法,如日志记录、权限验证、数据校验等,减少代码重复,提高代码复用性。 1. **继承与多态**:`BaseAction`作为超类,其他类通过继承它来获得其特性,这...
本篇将深入探讨一个被誉为“史上最灵活、强大”的分页框架,结合提供的`BaseAction.java`源码,我们将分析其设计思路和技术要点。 首先,强大的分页框架应具备以下几个核心特性: 1. **灵活性**:框架需要适应不同...
技术上的提升:在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。使用拦截器的方法对系统权限进行初步控制(后续可以采用...
3. **业务逻辑层**:例如`ProductAction.class`、`OrderAction.class`和`BaseAction.class`,这些类可能代表了产品管理和订单处理的业务逻辑。`BaseAction.class`可能是所有Action类的基类,提供了通用的方法和功能...
首先,我们来看`BaseAction.java`,这是一个基础Action类,通常包含了一些公共方法和属性,如登录验证、权限控制等。开发者可以继承这个基类,减少代码重复,提高代码复用性。BaseAction中的方法会处理来自用户请求...
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro框架进行...
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口是针对编程的,而不是针对实现编程的。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro...
TYPO3扩展routes 此扩展使您可以将URL终结点与某些Extbase Action绑定。 简而言之,您可以为TYPO3项目创建一个API。 特征: ... 开箱即用。 您的路线的其他中间件。... 用于一般信息的简单模块。...
开发者可以通过简单的标签语法在页面上插入分页组件,而复杂的逻辑则封装在后台Java代码中。例如,`<pagetag:pagination>`标签可能包含如`pageNo`、`pageSize`、`totalPages`等属性,用于传递当前页数、每页大小和总...
Service层是业务逻辑的核心,它封装了与DAO层的交互。Service层通常会继承BaseService,BaseService提供了一些通用的方法,而特定的业务逻辑则在对应的Service中实现。Service实现类需要通过@Autowired注解注入相应...
简单的ssh项目,泛型BaseAction配置,简单注解配置,applicationContext.xml配置,jar包地址 链接:https://pan.baidu.com/s/14NkywuhG6mESyhE1VMkhOQ 密码:en19
业务逻辑层是通过 Spring 框架实现的,首先建立一个 BaseAction,它继承了 Action 类,而其他定义的 Action 都要继承这个 BaseAction。这个 BaseAction 需要导入 AppContext 工具类,通过 Spring 中的 org.spring...