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 ...
随机推荐
- 网卡绑定多个ip
现在我的树莓派上的wlan0的IP是192.168.31.237,之前通过双绞线连接时候eth0的ip是192.168.31.50 . 我就想啊,能不能把wlan0的ip设置成50.......... ...
- linux命令之strace简单使用
strace是什么 strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等. 使用方式 strace 使用帮 ...
- mysql日期
查询当前时间 select now() 结果:2017-04-24 18:11:26 格式化当前日期 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') 结果:2017-04- ...
- JS下拉框联动
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【转】modelBuilder.Configurations.AddFromAssembly in EF Core
EntityFramework 6.x protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnMode ...
- Swift—UITextField的基本用法
https://www.jianshu.com/p/63bdeca39ddf 1.文本输入框的创建##### let textField = UITextField(frame: CGRect(x:1 ...
- EXCEL排序(hdu 1862)
其实这个题吧,就是发出来玩玩,会用sort就很easy了,有一个小小的知识点:比较字符串字典序的大小用strcmp函数. strcmp(a,b)<0说明a的字典序小于b的字典序. 上题: Inp ...
- PAT Advanced 1155 Heap Paths (30) [DFS, 深搜回溯,堆]
题目 In computer science, a heap is a specialized tree-based data structure that satisfies the heap pr ...
- @SpringBootApplication-exclude和扫描并装配其他包下的bean(@AliasFor)
1.exclude 不装配指定bean @SpringBootApplication(exclude={com.ebc.User.class}) 2.scanBasePackages package ...
- 51nod 1013:3的幂的和 快速幂
1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 ...