Java Struts 2和Spring with EL-打印变量的不同类型是什么

Java Struts 2和Spring with EL-打印变量的不同类型是什么,java,struts2,tags,el,Java,Struts2,Tags,El,我是EL的新手(特别是Struts 2)。我正在更新当前代码,看到不同类型的条目。有什么区别 <s:property value="%{obj.field}"/> // With %{} <s:property value="obj.field"/> // Without %{} <s:property value="%{#obj.field}"/> // with %{} and prefixed # ${obj.field} // with

我是EL的新手(特别是Struts 2)。我正在更新当前代码,看到不同类型的条目。有什么区别

<s:property value="%{obj.field}"/>  // With %{}
<s:property value="obj.field"/>     // Without %{}
<s:property value="%{#obj.field}"/> // with %{} and prefixed # 
${obj.field}  // with ${}
// any other types I may have missed... 
//与%{}
//没有%{}
//带%{}和前缀#
${obj.field}//带${}
//我可能错过的任何其他类型。。。
这不是JSTL,而是。当在Struts标签中时

%{}
表示强制对表达式求值。大多数情况下,它是无用的,因为评估是自动的,但它可以用于一致性,以明确评估正在进行的事实

%{foo}
表示您正在访问ValueStack中的foo对象(例如操作属性)

%{#foo}
表示您正在访问的是foo对象,但不在ValueStack中

阅读更多信息

${foo}
是JSPEL(表达式语言)

JSTL是一个不同的库,它的用途类似于
等等

你可以,顺便说一句

在使用Struts2时,通常使用OGNL和Struts标记(但如果需要,没有任何东西阻止您使用JSTL)。当使用SpringMVC时,您只使用JSTL

EL在处理JSP时总是可以使用的,但是它已经使用了,并且需要使用Struts2进行一些调整。

和,等等。