freeMarker Jfinal 获取session里的值

15410年前 (2016-01-12)Jfinal8838

问题:freeMaker session取值的常用格式都试过 session["xxx"],session.xxx 直接xxx 都取不出来?????


解决:

JFinal与Struts2不同,在使用Freemarker作为View的时候,没有自动将session传送至页面使用,原因很简单,为了遵 循restful。如果在项目中使用了session,那么集群就不太方便了,需要想办法对session进行同步才可以。所以JFinal默认是不会去 生成session对象让开发者去使用的。       即便如此,开发者可以通过使用拦截器来轻松添中session到view中使用,JFinal新版本中已经提供了SessionInViewInterceptor来支持这种需求

也可以自己写一个Interceptor即可:


/**
 * 拦截器
 * @author Axhack
 *
 */
public class PublicInterceptor implements Interceptor {
     
    public void intercept(Invocation ai) {
        //向freemarker中传jsp的内置对象
        Controller c = ai.getController();
        c.setAttr("request", c.getRequest());
        c.setAttr("response", c.getResponse());
        c.setAttr("session", new HttpSessionHashModel(c.getSession(), FreeMarkerRender.getConfiguration().getObjectWrapper()));
        ai.invoke();
    }
 
}


在登录或注册的Controller 类 前加代码

@Before(PublicInterceptor.class)调用即可:

例如:

@Before(PublicInterceptor.class)
@ControllerBind(controllerKey = "PersonalCenter", viewPath = "/")
public class PersonalCenterController extends BaseController {
public void personal() {//登录

            PersonalCenterDataResult dataResult = service.register(username, password, pcName, pcPhone, pcAddress, pcIDCard);

            setSessionAttr("PERSONALCENTER",dataResult.getPersonalcenter());

            render("personal.html");
        }}


然后页面

  <#if  session['PERSONALCENTER']??>
            ${session['PERSONALCENTER'].username}
 </#if>

本文原创,转载必追究版权。

分享给朋友:

相关文章

高情商女孩,女生看了都喜欢

高情商女孩,女生看了都喜欢

 王晨阳:19岁大四,北京航空航天大学,插画专业,夜市卖过化妆品,开过儿童美术教学班,某网站签约网络小说作家,15岁开始,3年时间写了8部小数约24万字;对话1:沈东军 vs王晨阳沈东军:像...

freemarker 判断日期变量为空处理 及InvalidReferenceException异常处理

at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98);InvalidR...

共享单车已经过时了!!!共享汽车要来了!比私家车和打车都便宜!

共享单车已经过时了!!!共享汽车要来了!比私家车和打车都便宜!

继共享单车后共享汽车也要来济南啦!无车一族!刚拿到驾照想练手的新手!以及想换个方式开车兜风的你们!还有讨厌打车又讨厌停车的你们!福音啊!10日,济南市人大代表、济南市停车集团董事长兼总经理白冰说济南市...

Jfinal +百度WebUploader组件实现多图片上传实例

Jfinal +百度WebUploader组件实现多图片上传实例

百度 Web Uploader文档的getting-started文档说明太简单,没有写全,在这里给大家补全($list会报没有定义,文档中确实没给定义)效果:有用部分外部jar包jfinal-2.0...

看了《欢乐颂》,才知道什么是真正的教养!

看了《欢乐颂》,才知道什么是真正的教养!

中国人一直讲究“穷养儿富养女”。然而我们发现,在现实生活中,甭管是儿子还是女儿,很多父母都采用“富养”的方式。为孩子创造良好的物质条件,宁可苦自己也不能苦孩子,自己可以衣衫褴褛,孩子必须披金戴银。比如...

美图蔡文胜:出身、学历不重要,我来教你怎么遇贵人

美图蔡文胜:出身、学历不重要,我来教你怎么遇贵人

在这封感谢信中,你看到了他是如何从一个懵懂少年到商业领袖的奋斗励志过程,读后令人心情澎湃。而闭目思索,又让你唏嘘不已。人的一生之中如果你没有遇到贵人,真的什么都不是。  令人羡慕的是,老蔡在自己人生每...

评论列表

好书网
好书网
10年前 (2016-05-18)

[嘻嘻]过来看看

fly
fly
10年前 (2016-05-18)

博主也在研究jfinal?[熊猫]

萨瓦迪卡 回复:
恩 项目在用
10年前 (2016-05-18)
春天快乐
春天快乐
10年前 (2016-05-18)

谢谢分享

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。