浏览 3870 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-12
原来action调用service的方法时都要给service方法多传递一个UserInfo 参数,现在想使用spring给service注入保存在session中的UserInfo, 不知如果解决。 service和dao应该都时单例的 ----------------------------------------------------------- public class UserAction extends BaseAction{ public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { UserForm userForm = (UserForm)form; UserInfo user = userForm.getUser(); user = getFacade().getUserService().login(user.getUserName(), user.getPassword()); if(user==null){ //无此用户,即登陆失败 throw new ApplicationException("对不起,用户名或密码错误,登陆失败"); } request.getSession().setAttribute("userInfo", userInfo); return mapping.findForward("success"); } } ----------------------------------------------------------- <!-- 配置session范围的userInfo --> <bean id="userInfo" class="com.digitalchina.pmcenter.user.entity.UserInfo" scope="session"> <aop:scoped-proxy/> </bean> <!-- 配置Service --> <bean id="userService" class="com.digitalchina.pmcenter.user.service.impl.UserServiceImpl" scope="prototype"> <property name="userDao" ref="userDao"/> <property name="userInfo" ref="userInfo"/> </bean> ----------------------------------------------------------- public class UserServiceImpl implements UserService{ private UserDao userDao; protected UserInfo userInfo; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void setUserInfo(UserInfo userInfo) { this.userInfo = userInfo; } /** * 合同审核 * 捕获Dao层由spring统一包装后的DataAccessException异常 * 重新抛出服务为异常,并赋予异常代码,服务异常将被action指定捕获 */ public void auditingContractApply(String userName, String password) { UserInfo userInfo= getUserInfo(); //userInfo不空,获得是spring代理类 System.out.println("userInfo from session: "+ userInfo); //userName 为空,不知为什么 System.out.println("userName from session: "+ userInfo.getUserName); try { //具体调用dao的方法完成业务 } catch (DataAccessException e) { e.printStackTrace(); throw new ServiceException("合同审核时发生异常"); } } } ----------------------------------------------------------- 不知 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-12
不知spring所说的session scope的bean是否是我登陆后放到session中的哪种session范围的bean。
是否有其他解决方案 |
|
返回顶楼 | |
发表时间:2007-10-17
不知道,你是否在web.xml中配置了
<listener> <listener-class>org.springframework.web.context.scope.RequestContextListener</listener-class> </listener> 呵呵,我也是刚刚接触,不知道是不是这个原因 |
|
返回顶楼 | |
发表时间:2007-10-26
已经配置了
|
|
返回顶楼 | |