'#','%'和'$'之间的区别

时间:2009-05-24 10:49:55

标签: struts2 jstl ognl

我是struts2的新手,对'#','%'和'$'元素感到困惑。有一些用法如下:

${user.name}
%{user.name}
<s:radio list="#{key1:value1,key2:value2}" />

有人可以给我一个解释和例子吗?

1 个答案:

答案 0 :(得分:4)

简单地说就是

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

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

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

BTW:#{key1:value1,key2:value2}应该包含在%{}中,例如%{#{key1:value1,key2:value2}},但是,struts2标记中的某些属性将假定为OGNL表达式,这意味着没有%{}就可以了。