问答详情
源自:5-3 创建自定义拦截器及拦截器栈实现权限校验

为什么我的session获取不到账号和密码?

完全按老师做的啊,前后对照几遍了,LoginAction的login方法里面的if显示为空,是jsp的值没有获取到,问题在哪啊!

57caa1760001886b05000310.jpg

57caa176000140ec05000365.jpg


提问者:帅到不像话 2016-09-03 18:10

个回答

  • 慕函数0662299
    2016-09-19 18:56:44
    已采纳

    在Struts2里,如果需要在Action中使用到 session,可以使用下面两种方式:

       1) 通过ActionContext 类中的方法getSession得到

        2)Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作

    老师在 AuthInterceptor 中用的是第一种方式,在 LoginAction 类中是用的第二种方式,所以,LoginAction 类要实现 SessionAware 接口,没有实现的,仔细检查下,估计跟我一样,粗心大意忽略了!

    http://img.mukewang.com/57dfc4660001bd2308780441.jpg

    另外,你的 action 配置属性要添加 method="login":

    <action name="login" class="com.imooc.action.LoginAction" method="login"> 

            <result name="success">/WEB-INF/page/manager.jsp</result>

            <result name="error">/login.jsp</result>

    </action>

     


  • 帅到不像话
    2016-09-07 14:02:27

    我是实例化Map后就好了,但不知道为什么这么做?有人给解释下吗?

  • Pro_amateur
    2016-09-04 15:13:12

    这样吧,有个软件叫Bcompare,你把老师的源码下下来,比较一下,就能看到哪里不一样了

  • Pro_amateur
    2016-09-04 14:28:34

    你的LoginAction.java里是否username 和password的setter和getter方法?如果没有,是传不进去的