第一次使用beetl出现问题

小文大哥哥 发布于 2013/02/01 11:40
阅读 971
收藏 1

    问题描述:

        当我在后台讲数据保存到session作用域中,然后重定向到前台使用beetl直接输出对象的属性${user.name}

报一个错:符号user未发现

@闲.大赋

加载中
0
红薯
红薯
提问的时候关联上 beetl 这个软件,作者就会自动收到提醒,不需要 @
0
小文大哥哥
小文大哥哥

引用来自“红薯”的答案

提问的时候关联上 beetl 这个软件,作者就会自动收到提醒,不需要 @
谢谢红薯提醒
0
闲大赋
闲大赋
不知道你用的是是什么mvc框架,目前beetl跟其他mvc框架整合,session的里的对象并没有复制到request里,所以,你的访问是出错的。

譬如如果控制层代码:request.setAttribute("user",service.getUser(id));
则可以直接在模版里访问 ${user.name}
如果控制层代码是 session.setAttribute("user",service.getUser(id));
则需要用${session["user"].name}

有的框架,如spring,可以将session中的变量copy到request中,以方便直接引用,你可以这么干

0
小文大哥哥
小文大哥哥

引用来自“闲.大赋”的答案

不知道你用的是是什么mvc框架,目前beetl跟其他mvc框架整合,session的里的对象并没有复制到request里,所以,你的访问是出错的。

譬如如果控制层代码:request.setAttribute("user",service.getUser(id));
则可以直接在模版里访问 ${user.name}
如果控制层代码是 session.setAttribute("user",service.getUser(id));
则需要用${session["user"].name}

有的框架,如spring,可以将session中的变量copy到request中,以方便直接引用,你可以这么干

我用的jfinal

额,${sesssino["user"].name}竟然会报VAR_NOT_DEFFINED  符号session未发现

0
闲大赋
闲大赋
这是因为jfinal要使用session,还得使用 SessionInViewInterceptor ,这个以前我跟波波讨论过,虽然并不同意他这么做,但是beetl集成里还是避免创建session,你需要显示的使用 SessionInViewInterceptor ,才能使用session
闲大赋
闲大赋
可以参看jfinal手册2.5节配置Interceptor
0
小文大哥哥
小文大哥哥

引用来自“闲.大赋”的答案

这是因为jfinal要使用session,还得使用 SessionInViewInterceptor ,这个以前我跟波波讨论过,虽然并不同意他这么做,但是beetl集成里还是避免创建session,你需要显示的使用 SessionInViewInterceptor ,才能使用session
嗯,谢谢你问题解决了。
0
JFinal
JFinal

引用来自“小文大哥哥”的答案

引用来自“闲.大赋”的答案

这是因为jfinal要使用session,还得使用 SessionInViewInterceptor ,这个以前我跟波波讨论过,虽然并不同意他这么做,但是beetl集成里还是避免创建session,你需要显示的使用 SessionInViewInterceptor ,才能使用session
嗯,谢谢你问题解决了。
@JFinal 下一版将去除  SessionInViewInterceptor,有更好的设计方案 :)
返回顶部
顶部