Struts2中OGNL表达式与EL表达式

  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}" onclick="return delConfirm()">删除</s:a>
        <s:a action="userAction_editUI?id=%{id}">修改</s:a>

你可能感兴趣的:(struts2)