Freemarker使用Cookie,Request,Session

本文介绍了如何在Freemarker模板中获取Cookie、Request和Session等变量,并提供了具体的代码示例。此外,还详细展示了如何从Application、Session、Request等不同作用域中读取属性。

Freemarker使用Cookie,Request,Session

<wbr><span style="color:#0000ff">1. 获取cookie.</span><br><span style="color:#00ccff"></span><strong><span style="color:#00ccff"><em> </em> &lt;#assign cookies = request.getCookies()&gt;<br> &lt;#list cookies as cookie&gt;<br> &lt;#if cookie.name = "userName"&gt;<br> ${cookie.name}<br> ${cookie.value}<br> &lt;/#if&gt;<br> &lt;/#list&gt;</span></strong></wbr>

2. 获取request.
<#if Request["shoppingCart"]?exists>
<#assign shoppingCart = Request["shoppingCart"]>

3.session.
<#if Session["shoppingCart"]?exists>
<#assign shoppingCart = Session["shoppingCart"]>
action中:
HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("pathtu", filepath);
ftl页面:
${Session["pathtu"]?default("Session")}
读取堆栈:
<#assign code=((stack.findString("#parameters['code']"))?default('001'))/>

在后台给request,session设置值即可在ftl页面使用的,如:

public ModelAndView employeeItemKpi(HttpServletRequest request,String employeeName) {

request.setAttribute("name", "your value");

HttpSession session = request.getSession();
session.setAttribute("isAll", isAll);

}

下面介绍访问应用程序各范围属性的语法示例:
Application范围假定Application范围有一个属性 myApplicationAttribute :
java 代码
<#if Application.myApplicationAttribute?exists>

${Application.myApplicationAttribute}

</#if>

或java 代码
<@s.property value="%{#application.myApplicationAttribute}" />

Session范围假定会话范围内有一个属性mySessionAttribute:
java 代码

<#if Session.mySessionAttribute?exists>

${Session.mySessionAttribute}

</#if>

或java 代码

<@s.property value="%{#session.mySessionAttribute}" />

Request范围假定请求范围有一个属性myRequestAttribute
java 代码

<#if Request.myRequestAttribute?exists>

${Request.myRequestAttribute}

</#if>


java 代码
<@s.property value="%{#request.myRequestAttribute}" />
Request参数假定请求参数myParameter
java 代码
<#if Parameters.myParameter?exists>

${Parameters.myParameter}

</#if>
or
java 代码
<@s.property value="%{#parameters.myParameter}" />
Context参数假定框架上下文有一参数myContextParam
java 代码
${stack.findValue('#myContextParam')}

java 代码

<@s.property value="%{#myContextParam}" />

2025-10-24 10:45:31.346 INFO 25365 --- [[ACTIVE] ExecuteThread: '65' for queue: 'weblogic.kernel.Default (self-tuning)'] com.smec.apps.coa.sap.SAPInterface : call method ZIF_SBS_GET_DROPDOWN,call success 2025-10-24 10:45:31.356 INFO 25365 --- [[ACTIVE] ExecuteThread: '65' for queue: 'weblogic.kernel.Default (self-tuning)'] c.s.a.c.s.impl.CoaVendorServiceImpl : sapGetDropDown listMaterialGroupFromSap Message:Get Material Group successful. 2025-10-24 10:45:35.255 INFO 25365 --- [[ACTIVE] ExecuteThread: '67' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 请求耗时 : 8636 2025-10-24 10:45:35.353 INFO 25365 --- [[ACTIVE] ExecuteThread: '72' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 请求耗时 : 8734 2025-10-24 10:45:42.005 INFO 25365 --- [[ACTIVE] ExecuteThread: '72' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.weaver.sso.filter.LoginFilter : ^_^ logout url: http://sbssso.smecs.com:8082/cas/logout?service=http://sbsfn.smecs.com/coa 2025-10-24 10:45:42.635 ERROR 25365 --- [[ACTIVE] ExecuteThread: '44' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:42.655 ERROR 25365 --- [[ACTIVE] ExecuteThread: '112' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:43.478 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:43.701 ERROR 25365 --- [[ACTIVE] ExecuteThread: '96' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:45.774 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.775 ERROR 25365 --- [[ACTIVE] ExecuteThread: '96' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.785 ERROR 25365 --- [[ACTIVE] ExecuteThread: '44' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.788 ERROR 25365 --- [[ACTIVE] ExecuteThread: '112' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.123 ERROR 25365 --- [[ACTIVE] ExecuteThread: '38' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:46.173 ERROR 25365 --- [[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:46.610 ERROR 25365 --- [[ACTIVE] ExecuteThread: '38' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.827 ERROR 25365 --- [[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.952 ERROR 25365 --- [[ACTIVE] ExecuteThread: '50' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.236 ERROR 25365 --- [[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.331 ERROR 25365 --- [[ACTIVE] ExecuteThread: '50' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:47.692 ERROR 25365 --- [[ACTIVE] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.840 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] o.s.b.w.servlet.support.ErrorPageFilter : Cannot forward to error page for request [/coa/coaSignOffPage] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> Session["_USER_COMPANY_"] [in template "layout/jsPlugins.ftl" at line 66, column 45] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${Session["_USER_COMPANY_"].companyCo... [in template "layout/jsPlugins.ftl" at line 66, column 43] - Reached through: #include "jsPlugins.ftl" [in template "layout/layout.ftl" in macro "sectionBody" at line 39, column 1] - Reached through: @sectionBody [in template "error/500.ftl" at line 7, column 1] ---- at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnexpectedTypeException.newDescriptionBuilder(UnexpectedTypeException.java:85) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:48) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.NonHashException.<init>(NonHashException.java:49) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Dot._eval(Dot.java:48) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.BuiltInsForExistenceHandling$ExistenceBuiltIn.evalMaybeNonexistentTarget(BuiltInsForExistenceHandling.java:52) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.BuiltInsForExistenceHandling$if_existsBI._eval(BuiltInsForExistenceHandling.java:129) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.DollarVariable.accept(DollarVariable.java:63) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:334) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:340) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.include(Environment.java:2925) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Include.accept(Include.java:171) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:370) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:876) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.invokeMacro(Environment.java:812) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:334) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:340) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.process(Environment.java:313) ~[freemarker-2.3.30.j 啥错
最新发布
10-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值