FreeMarker变量作用域测试

本文详细探讨了FreeMarker模板引擎中的变量作用域,包括局部变量、页面作用域、请求作用域、会话作用域和应用作用域。通过实例分析,展示了不同作用域下变量的生命周期和可见性,帮助读者深入理解如何在FreeMarker模板中有效地管理和使用变量。
摘要由CSDN通过智能技术生成
<#compress>
<#-- 测试变量作用域 -->
<#-- golbal 所有命名空间可见  -->
<#global x=12>
${x}	<#-- 本次会打印 12 -->

<#-- assign 当前命名空间可见 -->
<#assign x=10>
${x}	<#-- 本次会打印 10 -->

<#-- 类似于list中的循环变量:当前循环体可见 本次会打印 1 2 3 -->
<#list [1,2,3] as x>
	${x}
</#list>

<#-- local 定义的变量只允许在宏也就是 macro中使用 -->
<#macro testScope x lista>
	<#local x='bb'>	
	${x}	<#-- 会打印bb,而不是12,说明此处定义的变量直接覆盖了宏里面的同名变量  -->
	<#local x=30>
	${x}	<#-- 会打印30 -->
	<#assign x=40>
	${x}	<#-- 注意:会打印30,不是40 说明在宏里面assign即便定义在后面,作用域也不如local高 -->
	<#list lista as x>
		<#local x='aa'>	
		${x}		<#-- 注意:此处不会打印 aa  因为循环变量作用域的优先级更高!! -->
	</#list>
	${x}	<#-- 此处才会打印 aa 说明local的作用域不局限于list循环体中:这个Java有明显的区别 -->
</#macro>

<#-- 本次会打印 bb 30 30 a b aa -->
<@testScope x=12 lista=[
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值