On this page
global
Page Contents
Synopsis
<#global name=value>
or
<#global name1=value1 name2=value2 ... nameN=valueN>
or
<#global name>
capture this
</#global>
Where:
name
:变量的名称。它不是表达。但是,它可以写为字符串 Literals,如果变量名称包含保留字符(例如<#global "foo-bar" = 1>
),则很有用。请注意,此字符串 Literals 不会扩展插值(如"${foo}"
)。=
:赋值运算符,也可以是速记赋值运算符之一(++
,+=
等),就像分配指令一样,value
:要存储的值。表达。
Description
该指令类似于assign,但是创建的变量将在所有namespaces中可见,并且不会在任何命名空间内。就像您要创建(或替换)数据模型的变量一样。因此,该变量是全局变量。如果数据模型中已经存在相同名称的变量,则该变量将被使用此伪指令创建的变量隐藏。如果当前名称空间中已经存在具有相同名称的变量,则它将隐藏使用global
指令创建的变量。
例如,使用<#global x = 1>
创建的变量在所有命名空间中均以x
可见,除非另一个名为x
的变量将其隐藏(例如,您创建为<#assign x = 2>
的变量)。在这种情况下,您可以像${.globals.x}
一样使用special variable globals
。注意,使用globals
,您会看到所有可全局访问的变量;不仅是使用global
指令创建的变量,还包括数据模型的变量。
自定义 JSP 标记用户的注意事项:使用此伪指令创建的变量集与 JSP 页面范围相对应。这意味着,如果自定义 JSP 标记想要获取 page-scope 属性(page-scope bean),则在当前名称空间中具有相同名称的变量不会从 JSP 标记的角度隐藏它。