登录的时候前台使用ajax用jfinal获取session放不进json中?

感觉太煽情 发布于 2014/11/17 11:20
阅读 1K+
收藏 2

做了个登录用的ajax 提交,后台请求数据之后把查询到的实体用setAttr("user", uu);放入,

setSessionAttr("user", uu);  然后我也把uu也放到session中了,为啥前台success用data.user取不到session的值呢?

加载中
0
JFinal
JFinal

分三步走:

1:setAttr("user", user)

2:renderJson()

3:前端保证 js 写对

最后注意: renderJson 是不会处理 session 的,所以与 session 中的数据无关

0
小99
小99
不能这么玩,亲,你既然是ajax,你得写回response里面
0
感觉太煽情
感觉太煽情

引用来自“小99”的评论

不能这么玩,亲,你既然是ajax,你得写回response里面
能详细说说么,怎么放到response里面?session 不是放到request里面的么?
感觉太煽情
感觉太煽情
问题解决了,没有把session放到json中,前台用request.getSession().getAttribute("user");取到的值。谢谢你啦。。
小99
小99
为啥要从session中去取呢?你后台管理session就行,后端你想要的数据用json方式传到前端就好,你的 response.getWriter().print写回响应就行了
0
ni_cu
ni_cu
    public void configInterceptor(Interceptors me)
    {
        // nie: session拦截器,用于在View模板中取出session值
        me.add(new SessionInViewInterceptor());

    }

加上这句试试

0
感觉太煽情
感觉太煽情

引用来自“ni_cu”的评论

    public void configInterceptor(Interceptors me)
    {
        // nie: session拦截器,用于在View模板中取出session值
        me.add(new SessionInViewInterceptor());

    }

加上这句试试

我刚加上这句话,也重启了Tomcat,

我后台是这样放进去的

User uu = User.dao.checkLogin(name,md5Pwd);
if(uu == null){
   render("/index.jsp");
}else {
   setSessionAttr("user", uu);  		//往session中赋值
   renderJson();
}



我前台用ajax成功部分这样输出,

success: function(data){
   alert(data.user.);
}



可是输出的是undefined
ni_cu
ni_cu
应该是renderJson(uu)吧
0
zigzagroad
zigzagroad
不知道问的是什么。后台的用户验证和JSON有什么关系,这个不懂
0
buglife
buglife

你有没有把request作为返回的内容,既然是用ajax请求的 那你Action里返回的东西才能通过data. 获取到,不然你的data里不会有的。 

你比较set仅session里的时候,session是存在与HttpServletRequest对象中。如果想获取,你可以在类似于jsp的Server page中通过特定的表达式获取 例如jsp中获取set进去的user ${user}

0
胡萝卜炒肉
胡萝卜炒肉
你直接renderJson(uu)。ajax中就可以取到值了
0
mi-la-king
mi-la-king
太有才了
返回顶部
顶部