EL表达式应用于JSP中,其格式是 ${表达式}。
OGNL表达式应用于Strtus2中(Struts2的自定义标签中、struts.xml...), 应用于Struts2的自定义标签的属性值中 %{表达式},在 struts.xml中 使用${表达式}方式,自定义标签的属性值中使用%,struts.xml中 使用$符号,原因是在JSP中使用$符号与EL相冲突,
语法:
%{name}取值栈中的值
%{#name}取值栈中Map中的值
%{#user.name}取值栈中Map中的值
#{'k':'v', 'k2':'v2'}定义一个Map
{'e1', 'e2'}定义一个List
%{ #{'k':'v', 'k2':'v2'} }Struts2的自定义标签的属性值中 定义一个Map
注意:在Struts2自定义标签的属性值中 ,有的标签需要使用%符号,也有的不需要,具体看实践操作,但如果都加上%符号,也不会出错。但有一些值中需要特殊指定需要计算OGNL表达式的地方,如链接中,不使用%符号的地方则不需要计算OGNL:
<s:a action="userAction_delete?id=%{id}" οnclick="return delConfirm()">删除</s:a>
<s:a action="userAction_editUI?id=%{id}">修改</s:a>