语法:

${Expression}

来取代难以维护的Java脚本元素,或笨拙的jsp:useBean和jsp:getProperty;

尤其重要的是,表达式语言支持下面的功能:

1.精确地访问存储对象;

要输出“作用域变量”(用setAttribute存储在PageCentext, HttpServletRequest,HttpSession或ServletCnntext中的对象)saleItem .我们使用${saleItem}。

2.bean属性的简略记法;

要输出作用域变量company的campanyName属性(即getCampanyName方法的结果),我们使用${company.companyName}。而要访问作用域变量company的president属性的firstName属性,我们使用${company.president.firstIVame}

3对集合元素的简单访问;

要访问数组、List或Map的元素,我们使用$ {variable[indexOrkey]}。如果索引或键所采用的形式可以满足合法java变量名的要求,则bean的点号记法可以和集合的括号记法互换。

4对请求参数、cookie和其他请求数据的简单访问;

如果要访问标准的请求数据,我们可以使用几个预定义隐式对象。

5一组为数不多但有效的简单运算符;

在EL表达式内操作对象时,可以使用任何算术、关系、逻辑或空值检查(empty-testing)运算符。

6条件性输出;

在进行有选择地输出时,我们可以不必借助于java脚本元素。取而代之,我们可以使用${test ? option1 : option2}来完成这一功能。


7自动类型转换;
表达式语言移除了大多数类型转换的需求,可以省略很多将字符串解析成数字的代码。


8.空值取代错误消息。
大多数情况下,没有相应的值或NullPointerExceptions异常都会导致空字符串的出现,而非抛出异常。

示例:

bean:

package cn.donghaua.bean;

public class Person {

private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

servlet:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Person p1 = new Person("zhangsan",25);
Person p2 = new Person("zhaoliu",29);
req.setAttribute("person1", p1);
HttpSession session = req.getSession();
session.setAttribute("person2", p2);
RequestDispatcher disp = req.getRequestDispatcher("/WEB-INF/forward2.jsp");
disp.forward(req, resp); }

forward2.jsp

<body>
Resqust peson name:
${person1.name} <br>
Resqust peson age:
${person1.age}<br>

Session peson name:
${person2.name} <br>
Session peson age:
${person2.age}<br>

</body>

访问输出结果:

Resqust peson name: zhangsan
Resqust peson age: 25
Session peson name: zhaoliu
Session peson age: 29

EL表达式(Expression Language)的更多相关文章

  1. EL表达式Expression Language

    表达式语言Expression Language目的:简化jsp代码 EL内置对象 1.pageContext2.pageScope3.requestScope4.sessionScope5.appl ...

  2. EL(Expression Language)表达式语言

    EL(Expression Language)表达式语言 EL的基本语法是以${开始,以}结束 为了能够方便地输出数据,EL提供了11个内置对象,其中 2个内置对象为了方便输出请求参数 param用来 ...

  3. EL表达式(Exprission language)

    EL介绍 Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用,(可以直接读取对象的属性,不需要像之前java脚本那样去做,比较繁琐),使得访问存储在JavaBea ...

  4. EL(Expression Language)和JSTL标签(JSP Standard Tag Library)

    一.EL表达式: Expression Language提供了在 JSP 脚本编制元素范围外(例如:脚本标签)使用运行时表达式的功能.脚本编制元素是指页面中能够用于在JSP 文件中嵌入 Java代码的 ...

  5. 11 JSP/EL表达式/EL函数

    JSP      * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行      * JSP的运行原 ...

  6. EL表达式与JSTL(C)标签

    一.EL表达式: Expression Language提供了在 JSP 脚本编制元素范围外(例如:脚本标签)使用运行时表达式的功能.脚本编制元素是指页面中能够用于在JSP 文件中嵌入 Java 代码 ...

  7. 一、jsp和Servlet基础理论及jstl和EL表达式用法

    1.题外话:使用JSP有近一年半的时间了,但是开发量不大.昨天部门突然让做个读取EXCLE文件,然后在前台页面进行展示.并通过点击查看按钮可以对每条明细记录进行跳转后进行详情查看,并按照页面原型进行页 ...

  8. 2.EL表达式&JSTL标签库常用方法

    1.EL表达式 Expression Language表达式语言,主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出. 格式为${表达式} EL表达式输出Bean的普通属性.数组属性.Li ...

  9. 第 13 章 剖析el表达式

    13.1. 再谈el(Expression Language) 我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和 ...

  10. EL表达式与JSTL

    内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...

随机推荐

  1. wx.BookCtrlBase

    wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...

  2. 关于 ls 命令的一个小小的缺陷

    linux 的 ls : ls后边加上要显示的路径时:比方 ls /tmp 它会打印一边 /tmp 下的信息 当ls后边跟上多个同样路径的名字是,它会打印多次同样的信息 比方 ls /tmp /tmp ...

  3. android的Home键的监听封装工具类(一)

    android的Home键的监听封装: package com.gzcivil.utils; import android.content.BroadcastReceiver; import andr ...

  4. PHP基础示例:简单的在线文件管理

    先截个图: 下面为代码部分,由于只有一个文件,所以就不折叠了. <?php //简单的在线文件管理 $path = "./"; $filelist=array("f ...

  5. phpcms-v9 前台模板文件中{pc}标签的执行流程

    前台pc标签的使用:{pc:content 参数名="参数值" 参数名="参数值" 参数名="参数值"} 如: {pc:content ac ...

  6. 数据库课本SQL第三章答案

    3 .用 sQL 语句建立第二章习题 5 中的 4 个表. 答: 对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ; 建 S 表: CREATE TABLE S ( ...

  7. codeforces 10 D. LCIS LCIS O(n^2)算法

    题目链接 给出两个序列, 求出他们的最长公共上升子序列. 两层循环, 内层循环j, 外层i. 如果a[i] == b[j], 那么dp[j] = max(dp[j], dp[best]+1), bes ...

  8. [问题解决] ubuntu server12.04 按ctrl+alt+F1没用

    错误: ubuntu server12.04 想从图形化界面变成命令行界面时候,按ctrl+alt+F1没用 发生场景: 虚拟机下的ubuntu server12.04 解决方案: 因为ctrl+al ...

  9. Golang网络库中socket阻塞调度源码剖析

    本文分析了Golang的socket文件描述符和goroutine阻塞调度的原理.代码中大部分是Go代码,小部分是汇编代码.完整理解本文需要Go语言知识,并且用Golang写过网络程序.更重要的是,需 ...

  10. 柯南君:看大数据时代下的IT架构(9)消息队列之RabbitMQ--案例(RPC起航)

    二.Remote procedure call (RPC)(using the Java client) 三.Client interface(客户端接口) 为了展示一个RPC服务是如何使用的,我们将 ...