EL表达式和JSTL(三)——EL表达式
在JSP的开发中,为了获取Servlet中存储的数据,通常需要很多的Java代码,这样的做法使的JSP页面非常混乱,为此,JSP2.0中提供了一种EL规范,是一种简单的数据访问语言。
1.初识EL
EL表达式是非常简单的,都是以" ${ " 开始,以“ } ”结束。具体格式如下:
${ 表达式} ,表达式必须符合语法。
${表达式}:EL语句在执行,会调用pageContext.findAttribute()方法,以表达式为标识,分别从page,request,session,application四个域中查找相应的对象,找到此对象就返回此对象的值,没有找到就返回“ ”,不是null,从小到大的域查找,找到就不再找。
例如:${pageScope.name}:从page域中查找name的属性,域后面必须跟一个Scope,当没有指定的域时,就从四个域中依次查找。
实例:设置一个Myservlet,在MyServlet中给request中存属性,转发到myjsp.jsp
Myservlet.java
package cn.it.ELDemo; import java.io.IOException; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public MyServlet() {
super();
// TODO Auto-generated constructor stub
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//给域对象设置属性和值
request.setAttribute("username", "itcase");
request.setAttribute("password", "123");
//创建一个转发器
RequestDispatcher dispatcher=request.getRequestDispatcher("/myjsp.jsp");
dispatcher.forward(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
myjsp.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL表达式的使用</title>
</head>
<body>
用户名:<%=request.getAttribute("username") %><br>
密码:<%=request.getAttribute("password") %><br/> <hr>
使用EL表达式<br>
用户名:${username }
密码:${password} </body>
</html>
运行结果:

EL表达式代替的是:<%=表达式%>,因此EL表达式只能够代替输出,如果设置属性则需要使用JSTL。
2.EL中的运算
EL表达式支持简单的运算,例如:“+”,“-”,“*”,“/”;
“ . ”点运算符:EL中的点号运算符用来表示访问JSP页面中的某些对象的属性,如JavaBean对象,List集合,Array数组,其语法格式如下:
${customer.name}
这个相当于getName方法,因此,一个类中只有getXxx方法,无论有没有setXxx方法,或者有没有Xxx属性,使用customer.name获得getXxx方法里面的内容。
“【】“方括号运算符于点运算符的功能相同,都用于访问JSP页面中的某些属性,当需要获得的属性名中包含一些特殊的符号,如”-“,”?“时可以使用方括号运算符来访问该属性:
${user["my_name"]}
方括号运算符和点运算符:
- 在某些请况下,方括号运算符和点括号运算符是可以相互转换的,如${user.name}和${user.["name"]};
- 方括号运算符还可以访问List集合或者数组中某个指定的元素,如${user[0]};
- 方括号运算符和点运算符可以结合使用,如${user[0].name};
EL表达式和JSTL(三)——EL表达式的更多相关文章
- C#动态构建表达式树(三)——表达式的组合
C#动态构建表达式树(三)--表达式的组合 前言 在筛选数据的过程中,可能会有这样的情况:有一些查询条件是公共的,但是根据具体的传入参数可能需要再额外增加一个条件.对于这种问题一般有两种方法: a. ...
- [转]EL表达式和JSTL表达式实例
/* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...
- EL表达式与JSTL
内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...
- JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出. 1,JSTL标签总结: a).JSTL标签有什么用? JSTL是由JCP(Java Commu ...
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...
- jsp EL表达式和JSTL标签if-else if-else用法
java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...
- JSP和El表达式和JSTL标签库使用
核心标签库: <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...
- EL表达式、JSTL标签库
一.EL(Expression Language)表达式 语法结构:${var} 若要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true: <%@ pag ...
- EL表达式、 jstl标签
https://www.cnblogs.com/zhaotiancheng/p/6391894.html https://blog.csdn.net/zdwzzu2006/article/detail ...
随机推荐
- WTM框架在开发过程中如何动态迁移表和创建表
官方迁移方法:https://wtmdoc.walkingtec.cn/#/Data/Migration 但是在实际开发过程中使用Add-Migration 方法迁移会发现,把系统内置的表也全部带出来 ...
- golang用slice、list当queue
背景 golang没有queue这种类型,不过可以用slice.list模拟 slice当queue 声明队列 var queue []int 入队一个元素: queue = append(queue ...
- 020-PHP浏览目录
<?php // 使用表格浏览目录的结构 print("<TABLE BORDER= '1'>"); // 创建表格的头 print("<TR&g ...
- 130-PHP子类通过类函数访问父类protected修饰的类成员
<?php class father{ //定义father类 //定义protected修饰的成员属性和方法 protected $money=1000000; protected funct ...
- poj 1330 Nearest Common Ancestors 求最近祖先节点
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37386 Accept ...
- HDU 5285:wyh2000 and pupil
wyh2000 and pupil Accepts: 93 Submissions: 925 Time Limit: 3000/1500 MS (Java/Others) Memory Lim ...
- tx2--开机启动
TX2上电自动开机 参考:http://121.42.13.250/?p=168 问题描述 Jetson TX2在接通电源后,按下板子上的PWOER BTN开机键(S4)后,便能够正常启动.但这对于一 ...
- 20 - CommonJS - 规范的具体内容
- mybatis中实体类跟数据库属性不一致解决方案
1.在Mapper.xml映射配置文件中给sql语句起别名 select id as uid,username as name from user 2.mybatis中可以单独的配置查询结果的列名和实 ...
- bash: java: command not found
[root@izm5eab8t820b79js38tbxz ~]# java -version -bash: java: command not found 出现上面问题,解决方法: [root@iz ...