Struts2区别之间${var},#{var}和%{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"/>