'#','%' 之间的差异 和'$'
我是 struts2 的新手,对“#”、“%”和“$”元素感到困惑。 有一些用法,例如:
${user.name}
%{user.name}
<s:radio list="#{key1:value1,key2:value2}" />
能给我一个解释和例子吗?
I'm new to struts2 and confused by the '#','%' and '$' element. There are some usages like:
${user.name}
%{user.name}
<s:radio list="#{key1:value1,key2:value2}" />
Could any give me an explanation and examples?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简单来说,
如果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 表达式,即表示没有 %{} 也可以。
To put it simply
If ${user.name} in jsp page, it is an EL expression.
If ${user.name} in struts.xml, it is an OGNL expression.
If %{user.name} in jsp page, it is an OGNL expression.
Final, #{key1:value1,key2:value2} is an OGNL expression, it means creates a map that maps the key1 to the value1 and key2 to the value2.
BTW: #{key1:value1,key2:value2} should be wrap in %{}, like %{#{key1:value1,key2:value2}}, however, some attributes in struts2 tags will assume that is OGNL expression, that means without %{} is OK.