zoukankan      html  css  js  c++  java
  • 转:EL表达式的11个内置对象

    原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998

    EL是JSP内置的表达式语言

    JSP2.0开始,不让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本

    ############EL替代的是<%=... %>,也就是说EL只能做输出###########

    EL可以输出的东西都在11个内置对象中,11个内置对象,其中10个是Map,只有pageContext不是Map,它就是PageContext类型,EL所有内置对象如下:

    pageScope:获取pageContext域属性,相当于pageContext.getAttribute("xxx")

    requestScope:获取request域属性,相当于request.getAttribute("xxx")

    sessionScope:获取session域属性,相当于session.getAttribute("xxx")

    applicationScope:获取application域属性,相当于application.getAttribute("xxx")

    param:对应参数,它是一个Map,其中key是参数,value是参数值,适用于单值的参数,相当于request.getParameter("xxx")

    paramValues:对应参数,她是一个Map,其中key是参数,value是多个参数值,适用于多值的参数,相当于request.getParameterValues("xxx")

    header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值的请求头,相当于request.getHeader("xxx")

    headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值的请求头,相当于request.getHeaders("xxx")

    initParam:获取web.xml中<context-param>内的参数,${ initParam.xxx},xxx就是<param-name>标签内的值,进而得到<param-value>中的值

    cookie:用于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId

    pageContext:可以获取JSP九大内置对象,相当于使用该对象调用getxxx()方法,例如pageContext.getRequest()可以写为${pageContext.request)

          ######这也解释了 为什么要通过pageContext来获取其他 jsp 内置对象

    EL表达式在获取Map的值或Bean的属性值是,可以使用“点”的方法,也可以使用“下标”的方法。

    ${initParam.a}与${initParam['a']},它们是完成的东西相同的。但是,如果Map的键或Bean的属性名中包含下划线或横岗时,那么就必须使用“下标”方法,例如:${initParam['a_a']}
    ---------------------
    作者:星空dream
    来源:CSDN
    原文:https://blog.csdn.net/qq_17045385/article/details/54799998
    版权声明:本文为博主原创文章,转载请附上博文链接!

    Jsp内置对象为什么要通过pageContext获取

    最佳(实际并不)回答中,网友评论中的回答:

    烦恼收发室 2017-06-06 22:06
    request 和 pageContext 都是 JSP 的内置对象(9个对象),可在 JSP 脚本内部直接使用 EL 用来代替脚本,提供了11个内置对象。包含 pageContext,但是不包含 request pageContext 又可以获取其他8个对象,又可以代理其他域。 所以再 EL 表达式内,需要这样使用 btw,JSTL 是 EL 表达式的一种标签形式的扩展
     
    如果是写JSP,其实在JSP页面中是不能有Java代码的,所有的Java代码都需要使用自定义标签来封装,因此,其实这些方法都是在自定义标签中使用,而在自定义标签中,我们就无法使用另外八大隐式对象了,只能使用pageContext,因此在自定义标签中必须利用pageContext来获取其他隐式对象。
     
    另外参考:
    这两篇还没好好看
     
  • 相关阅读:
    [Swift系列]002-基础语法
    [Swift系列]001-入门准备
    navicat连接服务器Mysql 忘记密码 ------- 查看密码
    Elasticsearch 7.10.1 尝鲜笔记
    java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 排查解决
    nginx TCP 代理& windows傻瓜式安装
    python项目出现的问题 Microsoft Visual C++ 14.0 is required解决方法
    前端使用crypto.js进行加密
    xcopy 高级使用
    高并发解决方案-概念知识
  • 原文地址:https://www.cnblogs.com/mumu122GIS/p/9901360.html
Copyright © 2011-2022 走看看