06.十分钟学会表达式语言EL

时间:2022-08-26 20:50:11

一、 概念:MVC设计模式一个主要好处就是让jsp中的代码越来越来少,而且规定只能出现三种代码:接收属性,判断语句,迭代输出。但是,在开发中,jsp输出至少还是需要接受VO对象的,这时候为了避免导入VO包,只能通过表达式完成

06.十分钟学会表达式语言EL

作用:通过表达式语言可以方便的访问标志位方法和属性输出,如果属性不存在,则自动将null设置为“”

06.十分钟学会表达式语言EL

二、 表达式语言的内置对象:在表达式中用的内置对象

1,  要求

06.十分钟学会表达式语言EL

2,  内置对象

06.十分钟学会表达式语言EL

a,内置对象引入:对于如下情况

06.十分钟学会表达式语言EL

简单的表达式输出属性时,如果在不同属性范围内保存了同名属性,则查找优先级为page>request>session>application

为了区别不同属性范围内的属性,可以使用表达式的内置对象从不同属性范围查找输出属性。但开发中肯定要避免出现同名属性

06.十分钟学会表达式语言EL

b,之前通过pageContext可以取得requset,session,application对象,现在EL通过pageContext可以直接完成 jsp各内置对象方法的调用

06.十分钟学会表达式语言EL

分别对应HttpServletRequest接口的getRemoteAddr()和HttpSession接口的getId()、isNew()方法。完成机制当然是反射

c,通过param内置对象接受请求参数:如果未传参数,则用“”表示

06.十分钟学会表达式语言EL

以上是接收一个参数,现在有一个名为”inst“的checkbox参数数组,可通过paramValues取得

06.十分钟学会表达式语言EL

但开发中一般只传递单个参数

三、              集合操作

1,  要求:可以使用表达式语言进行集合输出

集合回顾:

06.十分钟学会表达式语言EL

2,  Collection集合的输出

06.十分钟学会表达式语言EL

首先将集合保存在属性范围内,然后通过属性输出集合。在实际开发中,JSP只完成紫色部分功能,具体的集合设置由servlet完成。

06.十分钟学会表达式语言EL

3,  Map集合的输出

06.十分钟学会表达式语言EL

依然是首先把集合保存在内置对象的属性范围内,然后通过key值取得相应value

06.十分钟学会表达式语言EL

四、 在MVC中应用表达式语言

1,  要求

06.十分钟学会表达式语言EL

2,  下面设计一个简化的MVC,理解如何通过表达式语言,在jsp中不导入包即可访问VO对象

VO设计

package com.chen.ying;

public class Person {

    private int age;

    private String name;

    public int getAge() {

       return age;

    }

    public void setAge(int age) {

       this.age = age;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

}

Servlet设计

public class ELServlet extends HttpServlet {

    public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException{

       Person per=new Person();

       per.setAge(10);

       per.setName("小明");

       req.setAttribute("person", per);//将VO对象保存在属性范围内

       req.getRequestDispatcher("test01.jsp").forward(req, res);//交给jsp显示结果

}

}

Jsp设计

06.十分钟学会表达式语言EL

可以看到,在jsp页面中,不导  入Person包即可访问VO对象属性。表达式语言在MVC设计模式中的应用即在此,在

Servlet中将VO对象保存在属性范围内,然后jsp通过表达式语言直接访问VO对象属性而不用导包。事实上,jsp只负

责接收、判断、输出,一般只导入java.util.*包

3,  使用mvc传递集合

Servlet设计

   public class ELServlet extends HttpServlet {

    public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException{

       List list=new ArrayList();

       Person per01=new Person();

       per01.setAge(10);

       per01.setName("小明");

       list.add(per01);

       Person per02=new Person();

       per02.setAge(13);

       per02.setName("小敏");

       list.add(per02);

       req.setAttribute("list", list);//将集合保存在属性范围内

       req.getRequestDispatcher("test01.jsp").forward(req, res);//交给jsp显示结果

    }

Jsp设计:只要是集合,不管任何情况下都要通过Iterator输出

06.十分钟学会表达式语言EL

思想:利用属性范围保存需要传递的数据或需要输出的对象,利用表达式语言和属性输出对象

4,小结

06.十分钟学会表达式语言EL

五、 表达式中的运算符

1,  运算符

06.十分钟学会表达式语言EL

主要是不用考虑转型的问题,程序自动为我们转换,同时要明确一点,jsp只是用作显示之用。各种运算操作尽量在servlet中完成

2,  数学运算符

06.十分钟学会表达式语言EL

3,  关系运算符

06.十分钟学会表达式语言EL

4,  逻辑运算符

06.十分钟学会表达式语言EL

5,  其他运算符

06.十分钟学会表达式语言EL

6,  小结

06.十分钟学会表达式语言EL

06.十分钟学会表达式语言EL的更多相关文章

  1. 表达式语言EL

    表达式语言EL 表达式语言 EL(Expression Language,表达式语言)主要是用在JSP页面中,用来辅助我们产生无脚本的JSP页面,此处的脚本指的是JSP中的Java代码. EL的语法是 ...

  2. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  3. 表达式语言EL简单学习

    Jsp2.0最重要的特性就是表达式语言EL.jsp用户可以用它来访问应用程序数据. EL表达式以${开头并以}结束. ${expresion}     ${x+y} 它也常用来连接两个表达式,取值将从 ...

  4. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  5. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  6. 快速入门:十分钟学会Python(转)

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  7. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

  8. Java EE之表达式语言EL(上)

    1.了解表达式语言 表达式语言(EL)用于在不使用脚本.声明或者表达式的情况下,在JSP页面中渲染数据. EL曾是JSTL 1.0规范(与JSP 1.2)中的一部分,并且只可以用作JSTL标签的特性. ...

  9. 【jsp】详解JSP表达式语言(EL)

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

随机推荐

  1. 1.Hibernate简介

    1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发;           b.大大减少代码量;           c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...

  2. 转: CentOS安装jdk8

    from: http://tecadmin.net/install-java-8-on-centos-rhel-and-fedora/ After a long wait, finally Java ...

  3. POJ 1459

    #include<iostream> #define MAXN 105 #include"queue" #define big_num 100000000 using ...

  4. Android color&lpar;颜色&rpar; 在XML文件和java代码中

    Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...

  5. ssh框架用JUnit测试

    public class testAuxDict { //读spring配置文件 public static BeanFactory factory = new ClassPathXmlApplica ...

  6. 1 vmware 如何联网,以及行命令令初步

    VMware安装Linux(我安装的是ubuntu),没法上网,上网教程见:https://blog.csdn.net/qq_28090573/article/details/78730552 安装完 ...

  7. Luogu 1309 - 瑞士轮 - &lbrack;归并排序&rsqb;

    题目链接:https://www.luogu.org/problemnew/show/P1309 题解: 每次比赛前,每个人都是按照分数降序排好的,那么比赛完后,将选手按输赢分成两组,顺序依然按照原顺 ...

  8. android 开发 框架系列 使用 FileDownloader 实现检查更新的功能class

    首先介绍一下FileDownloader GH :https://github.com/lingochamp/FileDownloader/blob/master/README-zh.md FileD ...

  9. vue 如何在循环中绑定v-model

    vue 如何在循环中绑定v-model 我现在有这么一个需求,页面上有多项输入框,但是具体有多少项,我也不知道,它是通过"新增一项"按钮点击事件,点击一下,就新增一项:如下图这个样 ...

  10. Android&lpar;Lollipop&sol;5&period;0&rpar; Material Design&lpar;一&rpar; 简介

    官网地址:https://developer.android.com/intl/zh-tw/design/material/index.html 使用Material Design 需要api21,即 ...