gpt4 book ai didi

java - #{} ${} 和 %{} 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 22:45:47 24 4
gpt4 key购买 nike

我目前正在使用 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 表达式时使用,尽管它通常是可选的。但是,什么时候它是可选的有点胡扯。通常是这样,但并不总是这样。最好使用它并明确和交流。

可能问的是 #变量,例如 #session#用于解析“映射”部分中值堆栈上的值。我将值堆栈视为堆栈和范围的组合:如果一个对象已被压入堆栈,则不需要 # .如果已创建 值,则需要 # .

例如,如果您使用 <s:set>要创建变量,您必须使用 # 访问它前缀,例如:

<s:set var="foo" value="'plugh'"/>
<s:property value="#foo"/>

关于java - #{} ${} 和 %{} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com