JSP:JSP中的EL表达式

转载 2015年11月20日 09:19:39
1. EL是JSP内置的表达式语言,可以在JSP页面中直接使用的语言!
  * jsp2.0开始,不让再使用java脚本,而是使用el表达式和动态标签来替代java脚本!

  * EL替代的是<%= ... %>,也就是说,EL只能做输出!
JSP页面也可以忽略EL:<@page isELIgnored="true"%>


2. EL表达式来读取四大域

EL操作四大域的内置对象:它们是Map类型

pageScope
requestScope
sessionScope
applicationScope

* ${pageScope.xxx}、${requestScope.xxx}、${sessionScope.xxx}、${applicationScope.xxx},指定域获取属性!
${pageScope.user}:输出pageContext.getAttribute("user")
${requestScope.user}:输出request.getAttribute("user");
${sessionScope.user}:输出session.getAttribute("user");
${applicationScope.user}:输出application.getAttribute("user");
  * ${xxx},全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null。
${user}
依次在pageScope、requestScope、sessionScope、applicationScope中查找user
如果查找到,那么立刻停止查找。

3. javaBean导航
  <%
    Address address = new Address();
    address.setCity("北京");
    address.setStreet("西三旗");
    
    Employee emp = new Employee();
    emp.setName("李小四");
    emp.setSalary(123456);
    emp.setAddress(address);
    
    request.setAttribute("emp", emp);
  %>

<h3>使用el获取request域的emp</h3>
${requestScope.emp.address.street }<!-- request.getAttribute("emp").getAddress().getStreet() --><br/>
4.操作List

<%
User user = new User();
user.setUsername("zhangSan");
user.setPassword("123");
List list = new ArrayList();
list.add(user);
pageContext.setAttribute("list", list);
%>

${pageScope.list[0].username}

${pageScope.list[0].password}

5.操作Map

<%
User user = new User();
user.setUsername("zhangSan");
user.setPassword("123");
Map map = new HashMap();
map.put("u1", user);

pageContext.setAttribute("map", map);
%>

${pageScope.map['u1'].username}
${pageScope.map['u1'].password}

${pageScope.map.u1.username}
${pageScope.map.u1.password}



6. EL可以输出的东西都在11个内置对象中!11个内置对象,其中10个是Map!pageContext不是map,它就是PageContext类型,1个项9个。

隐含对象名称

描       述

pageContext

对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)

pageScope

代表page域中用于保存属性的Map对象

requestScope

代表request域中用于保存属性的Map对象

sessionScope

代表session域中用于保存属性的Map对象

applicationScope

代表application域中用于保存属性的Map对象

param

表示一个保存了所有请求参数的Map对象

paramValues

表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]

header

表示一个保存了所有http请求头字段的Map对象

headerValues

同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

cookie

表示一个保存了所有cookie的Map对象

initParam

表示一个保存了所有web应用初始化参数的map对象


  *pageScope、 requestScope、sessionScope、applicationScope
  * param:对应参数,它是一个Map,其中key参数名,value是参数值,适用于单值的参数。
  * paramValues:对应参数,它是一个Map,其中key参数名,value是多个参数值,适用于多值的参数。
  * header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值请求头
  * headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值请求头
  * initParam:获取<context-param>内的参数!
    <context-param>
      <param-name>xxx</param-name>
      <param-value>XXX</param-value>
  </context-param>
  <context-param>
      <param-name>yyy</param-name>
      <param-value>YYY</param-value>
  </context-param>

    ${initParam.xxx}

  * cookie:Map<String,Cookie>类型,其中key是cookie的name,value是cookie对象。 ${cookie.username.value}
  * pageContext:它是PageContext类型!${pageContext.request.contextPath}项目名
EL操作参数内置对象:Map类型

param:Map<String,String>
paramValues:Map<String,String[]>

${param.username}:request.getParameter("username")
${paramValues.hobby}:request.getParameterValues("hobby");

------------------

EL操作请求头内置对象:Map类型

header:Map<String,String>
headerValues:Map<String,String[]>

${header.UserAgent}
${headerValues.UserAgener[0]}

------------------

应用初始化参数内置对象:Map类型
initParam:Map<String,String>

用来获取web.xml文件中的<context-param>参数,例如:

web.xml
<context-param>
  <param-name>p1</param-name>
  <param-value>v1</param-value>
</context-param>

${initParam.p1}

与Cookie相关的内置对象:Map类型
cookie:Map<String,Cookie>,其中key是Cookie的名称,而值是Cookie对象

${cookie.jsessionid.value}:获取sessionid

------------------

pageContext内置对象:PageContext类型

${pageContext.request},等同pageContext.getRequest()
${pageContext.session},等同pageContext.getSession()

${pageContext.request.contextpath},获取项目名
${pageContext.session.id},获取sessionId

------------------

EL中最重要的就是操作四大域!

=========================================

EL函数库(由JSTL提供的)
  * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
    String toUpperCase(String input):把参数转换成大写
    String toLowerCase(String input):把参数转换成小写
    int indexOf(String input, String substring):从大串,输出小串的位置!
    boolean contains(String input, String substring):查看大串中是否包含小串
    boolean containsIgnoreCase(String input, String substring):忽略大小写的,是否包含
    boolean startsWith(String input, String substring):是否以小串为前缀
    boolean endsWith(String input, String substring):是否以小串为后缀
    String substring(String input, int beginIndex, int endIndex):截取子串
    String substringAfter(String input, String substring):获取大串中,小串所在位置后面的字符串
    substringBefore(String input, String substring):获取大串中,小串所在位置前面的字符串
    String escapeXml(String input):把input中“<”、">"、"&"、"'"、""",进行转义
    String trim(String input):去除前后空格
    String replace(String input, String substringBefore, String substringAfter):替换
    String[] split(String input, String delimiters):分割字符串,得到字符串数组
    int length(Object obj):可以获取字符串、数组、各种集合的长度!
    String join(String array[], String separator):联合字符串数组!

=========================================

自定义函数库
 * 写一个java类,类中可以定义0~N个方法,但必须是static,而且有返回值的!
 * 在WEB-INF目录下创建一个tld文件
   <function>
    <name>fun</name>
    <function-class>cn.itcast.fn.MyFunction</function-class>
    <function-signature>java.lang.String fun()</function-signature>
  </function>

 * 在jsp页面中导入标签库
   <%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld" %>
 * 在jsp页面中使用自定义的函数:${it:fun() }

















JSP中的EL表达式详细介绍

一、JSP EL语言定义        EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它们通常用于对象操...

JSP中的EL表达式详细介绍

一、JSP EL语言定义          EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它...

jsp和EL表达式

一、Jsp        1、Jsp (Java Server Pages),它和 Servlet 技术一样,都是 SUN 公司定义的一种用于开发动态 Web 资源的技术。        ...
  • earbao
  • earbao
  • 2014年07月02日 14:18
  • 14484

JSP和El表达式和JSTL标签库使用

JSP 指令是通知JSP引擎如何处理该JSP页面,不是针对程序员的。 共有三种指令:    1.page指令:        1.1. language="java"  默认是java,只能写java...

JSP中EL表达式的应用以及常用的方法

EL表达式      1、EL简介 1)语法结构        ${expression} 2)[]与.运算符      EL 提供.和[]两种运算符来存取数据。 ...

JSP中的EL表达式详细介绍

一、JSP EL语言定义        E L(Expression Language)  目的:为了使JSP写起来更加简单。       表达式语言的灵感来自于 ECMAScript 和 XPath...

jsp中的JSTL与EL表达式用法及区别

对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念 JSTL一般要配...
  • Syaxis
  • Syaxis
  • 2017年02月08日 15:04
  • 3247

Jsp中EL表达式的使用

(转载)http://blog.csdn.net/evankaka/article/details/46700609 林炳文Evankaka原创作品。转载请注明出处http://blog.csd...

JSP中EL表达式入门与简介

简介EL 全名为 Language ,JSP2.0 之后,EL 成为了标准规范。因此,只要是支持Servlet2.4/JSP2.0 的容器,就都可以在JSP 网页中直接使用EL 。EL主要是为了简化J...

jsp使用EL表达式获取当前web应用的名称

------------------------------------------------------------------------------------------- 前言:为什么要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP:JSP中的EL表达式
举报原因:
原因补充:

(最多只允许输入30个字)