9
回答
登录的时候前台使用ajax用jfinal获取session放不进json中?
终于搞明白,存储TCO原来是这样算的>>>   

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

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

举报
共有9个答案 最后回答: 3年前

分三步走:

1:setAttr("user", user)

2:renderJson()

3:前端保证 js 写对

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

引用来自“小99”的评论

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

    }

加上这句试试

引用来自“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
--- 共有 1 条评论 ---
ni_cu应该是renderJson(uu)吧 3年前 回复

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

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

顶部