• 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 程序 = 数据结构 + 算法
  • 相关阅读:
    0004- NTFS FAT32
    0003-SQLServer 安装硬件要求
    php文件上传
    PHP 全局变量
    PHP 数组和数组排序
    PHP 函数
    PHP判断语句及循环语句
    PHP(一)
    HTTP请求组成
    扫描器的意义和利用思维
  • 原文地址:https://www.cnblogs.com/IamThat/p/2882022.html
Copyright © 2020-2023  润新知