#{} $ {}和%{}有什么区别?
我目前正在Struts2的工作,我只是不明白有什么区别之间${var}
,#{var}
和%{var}
他们是不同的范围?他们 是 什么
我找到了#的示例:
<s:select label="Year" id="%{param.name}"
list="#{'2010':'2010','2011':'2011','2012':'2012','2013':'2013','2014':'2014', '2015':'2015'}"
value="%{currentYear}"
required="true"
/>
在这里,它看起来像是一个关联数组,但是还有几次我将其视为#var
(没有括号)任何想法?
回答:
${}
-标准的JSP EL表示法。#{}
-标准UEL表示法;从未使用过,可能会起作用。%{}
-OGNL表达式符号。
JSP EL表示法之所以有效,是因为有一个请求包装器,该请求包装器将首先遵从值堆栈进行查找,然后如果在值堆栈上未找到任何值,则退回到正常的JSP评估。
OGNL表达式符号仅在S2标签内有效。IMO在评估OGNL表达式时应使用,尽管它通常是可选的。 但是,当
它是可选的时,有点废话。通常,buuuut并非总是如此。最好使用它,并保持明确和交流。
你 可能
会问有关#
的变量,像#session
等#
是用来解决值栈这是在“地图”部分上的值。我将值堆栈视为堆栈和范围的组合:如果将对象压入堆栈,则不需要#
。如果已
创建 值,则需要#
。
例如,如果<s:set>
用于创建变量,则必须使用#
前缀来访问它,例如:
<s:set var="foo" value="'plugh'"/><s:property value="#foo"/>
以上是 #{} $ {}和%{}有什么区别? 的全部内容, 来源链接: utcz.com/qa/432127.html