freeMarker Jfinal 获取session里的值

15410年前 (2016-01-12)Jfinal7928

问题: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>

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

分享给朋友:

相关文章

 程序员的中秋礼物.......

程序员的中秋礼物.......

【小姐你好,我是程序员】“小姐你好,我是程序员。”女生礼貌地回答:“你好,程先生。”男:“……哦,叫我序员就可以了。”   【程序员的愿望】有一天一个程序员见到了上帝。上...

使用Myeclipse 8.5开发基于JAX-WS的Web service实例

 本文为Web service 开发入门篇,主要介绍在Myeclipse 8.5环境下开发Web service的服务程序和客户端程序的基本流程。 在Weblogic 11g...

MyEclipse10.7注册码生成

注意经验里的工具可能不可用,请点击 生成注册码工具  下载。提取码:p1w4MyEclipse10.7注册码激活步骤:点击下面的链接http://jingyan.baidu.com/arti...

js/jquery 实现点击图片更换头像(图片)实例

    总之一句话, 可以先将 file类型 的input 隐藏 起来,通过 图片(头像)的onclick事件 来触发 file 的onclick事件。1.引入外部js:...

程序员为什么不炫富

程序员为什么不炫富

 提到互联网,尤其是互联网工程师们,人们往往会想到两个词:“高薪”和“高压”。在知乎上“为什么很少见工资高的程序员炫富?”的问题下,一个得票很高的答案是:“乐意炫富的人,不是因为有钱,而是因为付出的少...

我差不多是个废人了,感觉身体被掏空

林心如跟霍建华都结婚了,滴滴跟优步都在一起了。我们也应该抱住了吧? 终于8月了,超吃点吧,再一咬牙,坚持一下吧,马上秋天到了,就可以又能马上把肥肉藏起来了。 在这里迫不及待教大家一个夏天过后...

评论列表

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

[嘻嘻]过来看看

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

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

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

谢谢分享

发表评论

访客

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