Freemarker获取Session,Application,Request等对象

使用Request里的Attribute值最简单的方法就是直接 A t t r i b u t e N a m e 或 者 安 全 一 点 : {AttributeName}或者安全一点: AttributeName{AttributeName!“default Value”}

1.取Application范围的对象
xml 代码
   1. <#if Application.myApplicationAttribute?exists>  
   2.      KaTeX parse error: Expected 'EOF', got '#' at position 49: …te}       3. </#̲if>   或者 :  {Application.myApplicationAttribute!“default value”}   
2.取session范围的对象
xml 代码
   1. <#if Session.mySessionAttribute?exists>  
   2.      KaTeX parse error: Expected 'EOF', got '#' at position 41: …te}       3. </#̲if>   或者 :   {Session.mySessionAttribute!“default value”}   
3.取request范围的对象
xml 代码
   1. <#if Request.myRequestAttribute?exists>  
   2.       KaTeX parse error: Expected 'EOF', got '#' at position 41: …te}       3. </#̲if>   或者 :   {Request.myRequestAttribute!“default value”}   
4.取request parameter范围的对象
xml 代码
   1. <#if Parameters.myParameter?exists>  
   2.      KaTeX parse error: Expected 'EOF', got '#' at position 37: …er}       3. </#̲if>   或者 : {Parameters.myParameter!“default value”}   
5.取context parameter范围的对象
xml 代码
   1. KaTeX parse error: Expected '}', got '#' at position 19: …ack.findValue('#̲myContextParam'…{request.requestURL}
客户端IP地址:   r e q u e s t . g e t R e m o t e A d d r ( ) 或 者   {request.getRemoteAddr()} 或者   request.getRemoteAddr() {request.remoteAddr}
提交方式:   r e q u e s t . m e t h o d 等 等       R e q u e s t : 用 于 获 取 R e q u e s t 对 象 中 的 a t t r i b u t e 对 象 。 例 如 : {request.method} 等等      Request: 用于获取Request对象中的attribute对象。 例如: request.method   RequestRequestattribute{Request[“myRequestAttribute”]} 这样是直接在页面输出属性值。相当于request.getAtrribute(“myRequestAttribute”);
         如果要对这个值进行判断就必须使用如下格式:<#if Request[“myRequestAttribute”]=“edit”>
或者 :  R e q u e s t [ " m y R e q u e s t A t t r i b u t e " ] ! " d e f a u l t v a l u e "       S e s s i o n : 用 于 获 取 S e s s i o n 对 象 中 的 a t t r i b u t e 对 象 。 用 法 参 照 R e q u e s t 的 用 法 。   A p p l i c a t i o n : 用 于 获 取 A p p l i c a t i o n ( S e r v l e t C o n t e x t ) 对 象 中 的 a t t r i b u t e 对 象 。 用 法 参 照 R e q u e s t 的 用 法 。   R e q u e s t P a r a m e t e r s : 用 于 获 取 R e q u e s t 对 象 的 p a r a m e t e r 参 数 ( 浏 览 器 端 发 送 的 请 求 数 据 ) 例 如 : {Request["myRequestAttribute"]!"default value"}      Session:用于获取Session 对象中的attribute对象。 用法参照Request的用法。   Application:用于获取 Application(ServletContext)对象中的attribute对象。 用法参照Request的用法。   RequestParameters:用 于获取Request对象的parameter参数(浏览器端发送的请求数据) 例如: Request["myRequestAttribute"]!"defaultvalue"   SessionSessionattributeRequest ApplicationApplication(ServletContext)attributeRequest RequestParametersRequestparameter{RequestParameters[“myRequestAttribute”]}等同于 request.getParameter(“myRequestAttribute”);
 
Parameters:属性获取,依次从 RequestParameters、Request、Session、Application对象中获取对应属性/参数,一旦获取,则不再向下查找。
例如:${Parameters[“myRequestAttribute”]}
 
${Request[“a”]}   
${RequestParameters[“a”]}   
${Session [“a”]}   
${Application [“a”]}   
${JspTaglibs [“a”]}   
注意RequestParameters等内部对象时常不能获得所以要:   
${RequestParameters?default({})["_errors"]?default(“params”)}   
${Request[“request”]?default(“request”)}   
${Session[“session”]?default(“session”)}   
${Application[“ctx”]?default(“ctx”)}   
${RequestParameters?default({})?keys?size}   
${Request?keys?first}   
Freemarker可以直接取pageContext,requestAttribute,session,application中的数据,就是不能取requestParameter;


  1. FreemarkerViewResolver中设定requestContextAttribute属性

    <bean id="viewResolver"  
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
         <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>  
      <property name="contentType" value="text/html;charset=utf-8"/>
      <property name="cache" value="true"/>
      <property name="suffix" value=".ftl"/>  
      <property name="order" value="0"/>  
      <property name="requestContextAttribute" value="request"/>
    </bean>
    
  2. 在ftl文件中使用request对象,类型是HttpServletRequest:
    <#assign ctx=request.getContextPath()>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值