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

标签 struts2 jstl ognl

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

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

谁能给我一个解释和例子?

最佳答案

简单来说

如果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表达式,这意味着没有 %{} 是可以的。

关于struts2 - '#' ,'%' 和 '$' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903514/

相关文章:

javax.servlet.jsp.JspTagException : 'begin' < 0

jakarta-ee - 使用 struts 迭代器迭代 hashmap 时出现 java.util.ConcurrentModificationException

jsp - struts 2、tiles 2 动态标题

java - 在 jsp 上列出 vector 数据

java - Struts2 + spring Autowiring 操作的名称而不暴露某些属性

java - Struts 2消息资源查找问题

java - <s :if> test expression evaluation for boolean value doesn't work as expected

java - 不知道如何迭代 <forEach> 中提供的 "items"

java - 在 Struts 2 中保留多个 JSP 和 Action 之间的值

java - Struts2中使用域对象进行数据传输时如何排除字段