zoukankan      html  css  js  c++  java
  • Freemarker和sitemesh中访问session的复杂类型值的方法

    有时候想在sitemesh中访问session的值,而sitemesh又是用freemarker引擎的,所以问题就是如何在Freemarker里面访问session的复杂类型值。如果是自己写的类,基本上在freemarker里面不能类型转换的。还好Freemarker对HashMap的支持还比较好。最后这样处理:

    把hashMap保存到session:

    Map<String, Boolean> values = new HashMap<String, Boolean>();
    values.put("mykey11", true);
    //..... handle values.........
    session.setAttribute("mykey",  values.size() == 0 ? null : values);

     

    在Freemarker使用session:

    <#assign = Session["mykey"]?if_exists >
    <#if v?? >
      <#if v["mykey11"]?if_exists >
        <ul>
            <li>
              xxx
            </li>
        </ul>
      </#if>
    </#if>

    另外,在freemarker的ViewResolver里面要设置exposeSessionAttributes=true:

       <bean id="viewResolver"
            class
    ="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <property name="viewClass"
                value
    ="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
            <property name="suffix" value=".ftl" />
            <property name="contentType" value="text/html;charset=UTF-8" />
            <property name="exposeRequestAttributes" value="true" />
            <property name="exposeSessionAttributes" value="true" />
            <property name="exposeSpringMacroHelpers" value="true" />
        </bean>

     

  • 相关阅读:
    如何知道电脑是几核?
    宝塔服务器管理助手Linux面版使用教程
    阿里云服务器怎么更换系统盘

    MoonScript
    webmin
    requests 0.7.6
    盘古搜索
    c练习总结
    Download a webpage using CURL in C
  • 原文地址:https://www.cnblogs.com/Mainz/p/2524392.html
Copyright © 2011-2022 走看看