初学EL表达式

EL 全名为Expression Language

EL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构:

${sessionScope.user.sex}

所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得

用户的性别。假若依照之前JSP Scriptlet的写法如下:

User user = (User)session.getAttribute("user");

String sex = user.getSex( );

User是一个对象,Sex是他的一个属性,所以,取对象的值:${范围.变量.属性}

两者相比较之下,可以发现EL 的语法比传统JSP Scriptlet 更为方便、简洁。

其中,pageScope、requestScope、sessionScope和applicationScope都是EL 的隐含对象,由它们的名称可以很容易猜出它们所代表的意思,

例如:${sessionScope.username}是取出Session范围的username 变量。这种写法是不是比之前JSP 的写法:

String username = (String) session.getAttribute("username");容易、简洁许多.

自动转变类型

EL 除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型,我们来看下面这个范例:

${param.count + 20}

假若窗体传来count的值为10时,那么上面的结果为30。之前没接触过JSP 的读者可能会认为上面的例子是理所当然的,但是在JSP 1.2 之中不能这样做,原因是从窗体所传来的值,它们的类型一律是String,所以当你接收之后,必须再将它转为其他类型,如:int、float 等等,然后才能执行一些数学运算,下面是之前的做法:

String str_count = request.getParameter("count");

int count = Integer.parseInt(str_count);//这里需要把字符型转为整形

count = count + 20;
所以,注意不要和java的语法(当字符串和数字用“+”链接时会把数字转换为字符串)搞混淆喽

在 EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}

这里param 的功能和request.getParameter(String name)相同,而paramValues和
request.getParameterValues(String name)相同,这里取到的是字符类型的数组,针对复选框情况(一个相同的名字对应多个值)。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值。

pageScope 例如:${pageScope.user.userName} 相当于<%=page.getAttribute("user").getUserName%>

requestScope 例如:${requestScope.books} 相当于<%=request.getAttribute("books")%>

sessionScope 例如:${sessionScope.lastURL} 相当于<%=session.getAttribute("lastURL")%>

applicationScope 例如:${applicationScope.provice} 相当于<%=application.getAttribute("provice")%>

看到这里,大家应该很明确EL表达式只能通过内置对象取值,也就是只读操作,如果想进行写操作的话就让后台代码去完成,毕竟EL表达式仅仅是视图上的输出标签罢了。

pageContext

我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下表列出了几个比较常用的部分

${pageContext.request.queryString}   --- 取得请求的参数字符串

${pageContext.request.requestURL}  ------ 取得请求的URL,但不包括请求之参数字符串,即servlet的HTTP地址。

${pageContext.request.contextPath}  -------服务的webapplication的名称

${pageContext.request.remoteAddr}  --------取得用户的IP地址

注意:

之前经常看到有人说js是客房端的,EL是服务端的,不能在js中使用EL表达式----真是扯淡

要在javascript中使用El表达式,只需在el表达式两端加上单引号或者双引号即可

如:

<script>
            function(){
            alert(‘${sessionScope.user.name}‘);  //获取session中user对象的name属性
         }
        
</script>
也就是说只要使用$就要加单引号

时间: 2024-10-19 18:44:57

初学EL表达式的相关文章

【转】JSP中的JSTL与EL表达式用法及区别

对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程语言,甚至不是脚本编制语言.通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为. EL基本格式 EL表达式的格式:用美元符号($)定

坑爹的EL 表达式。

先说结论: Property 'OrgName0' not found on type EL表达式只与相关类的get方法的有关,就算你没定义变量,get 方法直接返回一个变量,或者常量都可以.这条没问题. EL表达式的大小写规则:当get方法后的字符如果前两个都是大写时,EL表达式需要大写.除此之外均为小写. package com.dobs.codedeploy.domain; public class Image { private String imageName;private Stri

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

JavaWeb:EL表达式

JavaWeb:EL表达式 EL表达式说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= %>和部分<% %>的程序片段. 3.EL表达式使得JSP文件的创建人员能够用更加简单的语法来访问数据. 4.基本形式为: ${var} EL运算符 (来自孤傲苍狼) 1.关系运算符 2.逻辑运算符: 3.empty运算符:检查对象是否为null(空) 4.二元表达式:${user!

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

EL表达式参考手册

一.EL简介 1.语法结构     ${expression}2.[]与.运算符     EL 提供.和[]两种运算符来存取数据.    当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 [].例如:        ${user.My-Name}应当改为${user["My-Name"] }    如果要动态取值时,就可以用[]来做,而.无法做到动态取值.例如:        ${sessionScope.user[data]}中data 是一个变量3

JSP页面用EL表达式 输出date格式

1.头上引入标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 2.<fmt:formatDate value="${project.creatDate }" patt

EL表达式基础知识

1.EL表达式 [1] 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象.                   > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段.                  > 使用EL表达式来代替JSP表达式 ,使用标签来代替脚本片段.                  > EL表达式用来向页面输出内容 [2] 基本语法 > ${表达式} > EL表达式可以从域中获取属性. - 使用 ${属性名

EL表达式的基本知识

1.EL表达式 [1] 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > EL表达式用来向页面输出内容 [2] 基本语法 > ${表达式} > EL表达式可以 - 使用 ${属性名} - 如果只填写一个属性名,EL表达式会自动做全域查找. - 所谓的全域查找,就是按照page request session application四个域范围内分别查找,找到就返回属性,如