Struts2 与x27之间的差异#'';%';和'$';

Struts2 与x27之间的差异#'';%';和'$';,struts2,jstl,ognl,Struts2,Jstl,Ognl,我不熟悉struts2,对“#”、“%”和“$”元素感到困惑。有一些用法,如: ${user.name} %{user.name} <s:radio list="#{key1:value1,key2:value2}" /> ${user.name} %{user.name} 能给我一个解释和例子吗?简单地说 如果jsp页面中有${user.name},则它是一个EL表达式。 如果struts.xml中有${user.name},则它是一个OGNL表达式 如果jsp页面中有%{us

我不熟悉struts2,对“#”、“%”和“$”元素感到困惑。有一些用法,如:

${user.name}
%{user.name}
<s:radio list="#{key1:value1,key2:value2}" />
${user.name}
%{user.name}
能给我一个解释和例子吗?

简单地说

如果jsp页面中有${user.name},则它是一个EL表达式。 如果struts.xml中有${user.name},则它是一个OGNL表达式

如果jsp页面中有%{user.name},则它是一个OGNL表达式

最后,#{key1:value1,key2:value2}是一个OGNL表达式,它意味着创建一个映射,将key1映射到value1,将key2映射到value2


顺便说一句:{key1:value1,key2:value2}应该用%{}包装,就像%{{key1:value1,key2:value2}}一样,但是struts2标签中的一些属性会假设是OGNL表达式,这意味着没有%{}是可以的。

但是,{user.name和%{user.name}之间的区别是什么时候可以使用,什么时候不能使用?