Freemarker变量赋值问题
答案:2 悬赏:20 手机版
解决时间 2021-02-16 04:23
- 提问者网友:嗝是迷路的屁
- 2021-02-15 17:29
Freemarker变量赋值问题
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-02-15 18:03
<#macro pager totalPage curPage=1 showPageNum=10>
<#if (showPageNum > totalPage)>
<#local showPageNum = totalPage-1>
#if>
${showPageNum}
#macro>
解释:global、assign、local(macro参数)、list(由list创建的循环变量如:<#list a as x>)关系
global 全局变量,在所有命名空间可见
assign 当前命名空间可见
local(macro参数) 局部变量,当前宏内可见
循环变量(<#list a as x>) 当前循环可见
他们之间的关系 循环变量会隐藏局部变量(local创建的或macro参数)
局部变量(local创建的或macro参数)会隐藏assign(创建的变量)
assign(创建的变量)会隐藏global追问不好意思,前几天比较忙。在assign里面用一个新的变量时,在下面输出的是赋值后的值,但如果是用macro中传入的变量则输出的是未改变前的值。这应该和隐藏变量没有什么关系吧,因为assign变量是当前空间可见。
是否意味使用一次assign就是重新定义了一个新的变量,只是这个变量与传入变量名一致所以导致被隐藏?不知这样理解是否正确。追答可以这样理解
<#if (showPageNum > totalPage)>
<#local showPageNum = totalPage-1>
#if>
${showPageNum}
#macro>
解释:global、assign、local(macro参数)、list(由list创建的循环变量如:<#list a as x>)关系
global 全局变量,在所有命名空间可见
assign 当前命名空间可见
local(macro参数) 局部变量,当前宏内可见
循环变量(<#list a as x>) 当前循环可见
他们之间的关系 循环变量会隐藏局部变量(local创建的或macro参数)
局部变量(local创建的或macro参数)会隐藏assign(创建的变量)
assign(创建的变量)会隐藏global追问不好意思,前几天比较忙。在assign里面用一个新的变量时,在下面输出的是赋值后的值,但如果是用macro中传入的变量则输出的是未改变前的值。这应该和隐藏变量没有什么关系吧,因为assign变量是当前空间可见。
是否意味使用一次assign就是重新定义了一个新的变量,只是这个变量与传入变量名一致所以导致被隐藏?不知这样理解是否正确。追答可以这样理解
全部回答
- 1楼网友:山有枢
- 2021-02-15 19:13
不要用>,小于 大于 在freemarker里面都是用gt lt来表示的,正确的写法应该是
<#macro pager totalPage curPage=1 showPageNum=10>
<#if (showPageNum gt totalPage)>
<#assign showPageNum = totalPage-1>
#if>
${showPageNum}
#macro>追问感谢您的提醒,谢谢。楼下的回答相对要精确些,谢谢。
<#macro pager totalPage curPage=1 showPageNum=10>
<#if (showPageNum gt totalPage)>
<#assign showPageNum = totalPage-1>
#if>
${showPageNum}
#macro>追问感谢您的提醒,谢谢。楼下的回答相对要精确些,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯