Java Web-EL表达式 in JSP

Java Web-EL表达式 in JSP

概念

EL(Expression Language)是一种表达式语言,可以替换和简化JSP页面上JAVA代码的书写

语法

${<在这里写表达式>}

一般只用来写表达式,不写太过于复杂的东西,业务相关的由JavaBean负责

表达式的结果会作为HTML的资源进行直接展示

作用

  1. 运算

    支持的运算符:

    1. 算术运算符:+-*/(也可以用div表示)%(也可以用mod表示)
    2. 比较运算符> < >= <= == !=
    3. 逻辑运算符;&& || !
    4. 空运算符:empty:用于判断字符串、集合、数组对象是否为null或者长度是否为0

      例如:${empty list},如果要返回true,list就必须为Null或者长度为0

      可以取反:${! empty list}或者${not empty list}

      对于字符串、List、map等等类型都适用

  2. 获取值

    注意,EL表达式只能从域对象获取值

    语法:语法有两种

    1. ${域名称.键名}:从指定域中获取指定键的值,如果不存在的话就返回空串

      域名称:

      1. pageScope:从pageContext域中获取值
      2. requestScope:从request域中获取值
      3. sessionScope:从session中获取值
      4. applicationScope:从application(ServletContext)中获取值
    2. ${键名}:省略了域名称

      这种写法表示依次从最小的域中去查找是否有该键对应的值,直到找到为止

    问题:对于非字符串类型的值该如何获取?

    1. 对于自定义类的对象类型的值:如果直接获取对象,打印出来的是对象的地址值。如果想要里面的成员变量,就想要通过对象的属性来获取(注意是属性而不是成员变量,当然一般这两个是一样的)。

      例如,一个people类有一个成员变量为String name,然后定义了setter和getter,属性名也是name,那么要访问该属性就可以使用${people.name}

      再例如,如果我们在类中定义了一个Date类型的成员变量,其对应着有一个方法为getYear(),那么year就是该对象的一个属性,尽管我们没有在类中定义year这个成员变量。此时我们可以通过${people.year}来获取该属性值

      因为它本质上调用的是getter,而不是成员变量

      同样的,如果我们自定义一个属性并设置getter和setter,我们就可以通过设置getter来自定义输出内容了

    2. 对于List类型的值:
      • 获取列表:%{域名称.键名},这样得到的是[]包含着的所有元素
      • 获取特定元素:%{域名称.键名[索引]}
      • 如果角标越界了,就返回空串,而不是报错
    3. 对于从Map集合类型的对象中获取值:
      • ${域名称.键名.key名称}
      • ${域名称.键名["key名称"]}

      注意第一种方法的key名是不加双引号的,第二种是加的

注意

  1. JSP默认支持EL表达式

    如果我们想要忽略EL表达式、直接展示源文本,可以在JSP中设置isELIgnored属性为"true",使得整个页面的EL表达式失效为普通文本。

    如果想要屏蔽单个EL表达式,可以直接将EL表达式的符号进行转义:在EL表达式之前加\表示转义

  2. 隐式对象

    在EL中不需要创建就能直接拿来用的对象就叫隐式对象

    最常用的是pageContext对象,它的功能有:

    1. 获取JSP其他八个内置对象

      ${pageContext.XXX}(因为pageContext有getXXX方法,所以XXX是它的属性)

      例如:${pageContext.request.contextPath}来获取虚拟目录,这是一种在JSP页面动态获取项目在服务器上的 虚拟目录的方法

      我们建议在涉及到目录的地方都使用动态获取虚拟目录的方式,以便于项目在不同位置的部署使用,例如:

原文地址:https://www.cnblogs.com/jiading/p/12014251.html

时间: 2024-10-05 05:05:57

Java Web-EL表达式 in JSP的相关文章

[Java.web]EL表达式

<%@page import="cn.itcast.domain.Address"%> <%@page import="cn.itcast.domain.Person"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html&

Java Web EL、JSP、Servlet变量

EL 11 JSP 9 Servlet JSP类别pageContext pageContext * 作用域pageScope pageContext.getAttribute() *requestScope request.getAttribute() HttpServletRequest.getAttribute() sessionScope session.getAttribute() HttpSession.getAttribute()applicationScope applicati

Java ee el表达式

以前在开发的时候,偶尔会遇到jsp页面不支持el表达式的情况. 这个的原因是因为El功能被关闭了, 当时的解决办法是关闭忽略.isELIgnored 设设置 但是为什么有时候不用设置也可以了呢.发现原来是和web.xml的声明有关系. 有些版本的servlet声明默认就是关闭的. 貌似在2.4以前的都需要加上 <%@ page isELIgnored="false" %> Java ee el表达式

EL表达式和jsp标签

2 EL表达式 2.1 简介 EL表达式替代jsp表达式.因为开发jsp页面的时候遵守原则:在jsp页面中尽量少些甚至不写java代码. EL表达式作用:向浏览器输出域对象中的变量或表达式计算的结果 基本语法: ${变量或表达式}    代替<%=变量或表达式%> 2.2 EL获取不同类型的数据 普通字符串 普通的对象 数组或List集合 Map集合 2.3 EL执行表达式 算术表达式 比较表达式 逻辑表达式 判空表达式 2.4 EL的11个内置对象 pageContext pageScope

JSP系列:(4)JSP进阶-EL表达式和JSP标签

jsp的核心语法: jsp表达式 <%=表达式%>和 jsp脚本<%>. 以后开发jsp的原则: 尽量在jsp页面中少写,甚至不写java代码. 目标: 1)使用EL表达式代替jsp表达式. 2)使用JSP标签代替jsp脚本. 1.EL表达式 1.1.EL作用 使用EL表达式替换掉jsp表达式 EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} <%@ page language="java" import=

java web中servlet、jsp、html 互相访问的路径问题。

在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path); 情况二.指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发 假设在myapp项目下有

笔记 - EL表达式 和 JSP标签

一.EL表达式 1 EL作用 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<%  %>. 以后开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码. 使用EL表达式替换掉jsp表达式                      EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!!                      语法: ${变量或表达式}          2 EL语法 1)输出基本数据类型变量 1.1 从四个域获取 ${name}

JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象. 那么JSP对象有哪些呢? JSP内置对象          对应的类型   备注 R

18、EL表达式、JSP标签、JSTL标签、自定义标签

EL表达式 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<% %>. 以后开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码. 使用EL表达式替换掉jsp表达式 EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} EL语法 1 输出基本数据类型变量 从四个域获取 ${name} 指定域获取 ${pageScope.name} 域范围: pageScoep / requestScope / sessionSco

[Java Web] EL

一.概述 使用EL表达式可简化JSP中对象的引用,使代码更加规范,可读性与可维护性更好. 属性范围 EL实例 说明 Page ${pageScope.name} 获取Page范围的名为name的属性 Request ${requestScope.name} 获取Request范围的名为name的属性 Session ${sessionScope.name} 获取Session范围的名为name的属性 Application ${applicationScope.name} 获取Applicati