zoukankan      html  css  js  c++  java
  • EL表达式与OGNL表达式的区别

    EL表达式        使用环境:JSP中
    格式:${表达式}

    OGNL表达式       使用环境: Strtus2中(Struts2的自定义标签中、struts.xml...)
        Struts2的自定义标签的属性值中    %{表达式}// %是为了与EL标签区别,防止冲突
        struts.xml中                    ${表达式} 
        语法格式:
            %{name}
            %{#name}

    //上面两个写法的一样的, %{name}表示直接从model里取值, 加上#表示从ActionContext的context里取值,#表示从map里取值
            %{#user.name}
            #{'k':'v', 'k2':'v2'} 用ognl 构建map
            {'e1', 'e2'} 用ognl构建list



        %{#{'k':'v', 'k2':'v2'} }

    有的时候为什么不用%而用#号呢?

    例如:

     <s:iterator value="#roleList">
                <tr class="TableDetail1 template">
                    <td>${name}&nbsp;</td>
                    <td>${description}&nbsp;</td>
                    <td>
                        <s:a action="roleAction_delete?id=%{id}" onclick="return delConfirm()">删除</s:a>
                        <s:a action="roleAction_editUI?id=%{id}">修改</s:a>
                        <a href="setPrivilegeUI.html">设置权限</a>
                    </td>
                </tr>
            </s:iterator>   

    这里面: <s:iterator value="#roleList"> #roleList 这边本来就是在使用ognl表达式,所以%{}加不加无所谓 即是写成%{#roleList}也不错

    但是在<s:a action="roleAction_delete?id=%{id}" onclick="return delConfirm()">删除</s:a> 因为写在""里面受到""影响,为了告诉程序这里要使用ognl表达式故加上%{}来表示,告诉程序这里使用ognl表达式输出

    I'm falling off the sky all alone.The courage inside is gonna break the fall. Nothing can dim my light within. I am That I am 程序 = 数据结构 + 算法
  • 相关阅读:
    oracle基本语句
    html页面比较长,如何用js实现网页一打开显示在网页的中部?
    idea拉出Output窗口和还原窗口
    关于idea的目录结构如何变成树状,也就是横向变纵向
    IDEA -- idea无法导入HttpServlet包解决方法
    tomcat启动startup.bat一闪而过
    li标签和checkbox绑定
    利用jQuery对li标签操作
    &#65279导致页面顶部空白一行解决方法
    Myeclipse快速排版的快捷键
  • 原文地址:https://www.cnblogs.com/IamThat/p/2882022.html
Copyright © 2011-2022 走看看