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 程序 = 数据结构 + 算法
  • 相关阅读:
    php中除法取整的方法(round,ceil,floor)
    ajax 实现修改功能
    ueditor PHP版本使用方法
    $.ajax json 在本地正常 上传服务器不正常
    Web常见几种攻击与预防方式
    PHP使用Session遇到的一个Permission denied Notice解决办法
    VUE引入模块之import xxx from 'xxx' 和 import {xxx} from 'xxx'的区别
    JS事件委托或者事件代理原理以及实现
    JS 一次性事件问题
    原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度
  • 原文地址:https://www.cnblogs.com/IamThat/p/2882022.html
Copyright © 2011-2022 走看看