zoukankan      html  css  js  c++  java
  • EL表达式的基本知识

    1.EL表达式


    [1] 简介

    > JSP表达式 <%= %> 用于向页面中输出一个对象。
    > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。
    > EL表达式用来向页面输出内容

     

    [2] 基本语法

    > ${表达式}
    > EL表达式可以 - 使用 ${属性名}
    - 如果只填写一个属性名,EL表达式会自动做全域查找。
    - 所谓的全域查找,就是按照page request session
    application四个域范围内分别查找,找到就返回属性,如果没找到什么都不返还。
    - 我们还可以指定去哪个域查找(域实际上就是Map)
    (page request,session application是域对象)
    以下几个是对应的域
    pageScope
    requestScope
    sessionScope
    applicationScope
    - 例子:
    查找request中属性
    ${requestScope.key}
    ${requestScope.key.属性名},调用的是属性的get方法
    查找session中的属性
    ${sessionScope.属性名}
    <%
    	Student student1=new Student(1,"张三","123");
    	Student student2=new Student(2,"张1","123");
    	Student student3=new Student(3,"张2","123");
    	Student student4=new Student(4,"张4","123");
    	 pageContext.setAttribute("student", student1);
    	 request.setAttribute("student",student2);
             session.setAttribute("student", student3);
    	 application.setAttribute("student", student4);
    %>
    	${student}<br>
    	${pageScope.student.name}<br>
    	${requestScope.student }<br>
    	${sessionScope.student.id }<br>
    	${applicationScope.student.password }<br>
    	
    
    - 注意:EL表达式只能获取域中的属性
    EL表达式不能直接调用对象的方法
    - 通过EL表达式读取对象的属性时,只需要${对象.属性名}
    EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get
    注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!
    - 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-:
    ${requestScope['属性名']}

    [3] 隐含对象

    > EL中一共有11个内置对象。
    - pageContext
    类型 : PageContext
    它和JSP中pageContext是一个东西
    作用 : 可以获取到JSP中其他的隐含对象
    例如:可以获取项目名:
    - pageScope
    类型:Map<String,Object>
    代表:page域中的属性
    作用:可以获取到page域中的属性
    - requestScope(一次请求,转发)
    类型:Map<String,Object>
    代表:request域中的属性
    作用:可以获取到request域中的属性
    - sessionScope
    类型:Map<String,Object>
    代表:session域中的属性
    作用:可以获取到session域中的属性
    - applicationScope
    类型:Map<String,Object>
    代表:application域中的属性
    作用:可以获取到application域中的属性
    - param
    类型: Map<String , String>
    代表:用户发送的请求参数
    作用:可以获取请求参数
    用法: ${param.参数名}
    - paramValues
    类型:Map<String , String[]>
    代表:一个请求参数对应的多个值
    用法: ${paramValues.参数名[索引]}
    - header
    作用:可以获取到用户发送的请求头
    类型:Map<String , String>
    例如:获取用户的系统信息 ${header['User-Agent']}
    ? - headerValues
    类型: Map<String , String[]>
    作用:可以获取一个头的多个值
    ? - initParam;
    类型:Map<String , String>
    作用:获取整个WEB应用的初始化参数
    ? - cookie
    类型:Map<String , Cookie>

    [4] 运算

    > 在EL中可以直接使用运算符进行运算。
    > 在EL中可以使用Empty元素符:
    如果值为null , empty则返回 true
    如果为空串, 则返回 true
    空的集合 返回true
    > 所以empty元素符经常用来判断集合或者字符串是否为空
  • 相关阅读:
    dragloader.js帮助你在页面原生滚动下实现Pull Request操作
    移动Web单页应用开发实践——实现Pull to Request(上/下拉请求操作)
    【转】移动Web单页应用开发实践——页面结构化
    前端网址收集!Amazing! 神奇!
    前端代码书写规范
    扫描工具 分析
    backtrack5渗透 笔记
    Sqlmap注入技巧集锦
    nmap 高级扫描用法
    小温谈数据库优化--数据设计篇(转)
  • 原文地址:https://www.cnblogs.com/Actexpler-S/p/7348306.html
Copyright © 2011-2022 走看看