EL表达式
Posted zyxsblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式相关的知识,希望对你有一定的参考价值。
EL表达式
①EL表达式(Expression Language,EL)简介:
El表达式主要是简化jsp代码,EL(Expression Language) 是为了使JSP写起来更加简单,提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
我们使用EL表达式直接输出内置对象的值:
代码:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <% 11 pageContext.setAttribute("info1", "pageContext的值"); 12 session.setAttribute("info2", "session的值"); 13 request.setAttribute("info3", "reqest的值"); 14 application.setAttribute("info4","applicaiton值"); 15 %> 16 <h1>${info1 }</h1> 17 <h1>${info2 }</h1> 18 <h1>${info3 }</h1> 19 <h1>${info4 }</h1> 20 </body> 21 </html>
显示结果:
②EL表达式内置对象
|
表达式内置对象 |
说明 |
1 |
pageContext |
表示javax.servlet.jsp.PageContext对象 |
2 |
pageScope |
表示从page属性范围查找输出属性 |
3 |
requestScope |
表示从request属性范围查找输出属性 |
4 |
sessionScope |
表示从session属性范围查找输出属性 |
5 |
applicationScope |
表示从applicaiton属性范围查找输出属性 |
6 |
param |
接收传递到本页面的参数 |
7 |
paramValues |
接收传递到本页面的一组参数 |
8 |
header |
取得一个头信息数据 |
9 |
headerValues |
取出一组头信息数据 |
10 |
cookie |
取出cookie中的数据 |
11 |
initParam |
取处配置的初始化参数。 |
③EL表达式范围4中范围属性
寻找值的顺序:page->request->session->application
如果在page中找到想要的值就不会再往下面找,其他的也是。
例如代码:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <% 11 pageContext.setAttribute("info1", "pageContext的值"); 12 session.setAttribute("info1", "session的值"); 13 request.setAttribute("info1", "reqest的值"); 14 application.setAttribute("info1","applicaiton值"); 15 %> 16 <h1>${info1 }</h1> 17 <h1>${info2 }</h1> 18 <h1>${info3 }</h1> 19 <h1>${info4 }</h1> 20 </body> 21 </html>
④El表达式取到请求参数值
1、param.参数名称
例如:在info.jsp中我们写页面提交的数据
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <form action="el2.jsp" method="post"> 11 <input type="text" id="name" name="name" value="张三"/><br/> 12 <input type="submit" value="提交到el2.jsp" > 13 </form> 14 <a href="el2.jsp?age=12">提交到el2.jsp</a> 15 </form> 16 </body> 17 </html>
在el2.jsp中获取得到的值
方法:param.name获取姓名 param.age获取年龄
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title> el2.jsp 页 面 </title> 8 </head> 9 <body> 10 <% request.setCharacterEncoding("utf-8"); %> 11 <h3>姓名:${param.name }</h3> 12 <h2>年龄:${param.age}</h2> 13 </body> 14 </html>
request.setCharacterEncoding("utf-8");
设置字体编码
2、param.一组参数
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <form action="el2.jsp" method="post"> 11 <input type="checkbox" name="hobby" value="java"/>java 12 <input type="checkbox" name="hobby" value="C">C 13 <input type="checkbox" name="hobby" value="linux">linux<br/> 14 <input type="submit" value="提交啊"> 15 </form> 16 </body> 17 </html>
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title> el2.jsp 页 面 </title> 8 </head> 9 <body> 10 <% request.setCharacterEncoding("utf-8"); %> 11 <h1>爱好:${paramValues.hobby[0] }</h1> 12 <h1>爱好:${paramValues.hobby[1] }</h1> 13 <h1>爱好:${paramValues.hobby[2] }</h1> 14 15 </body> 16 </html>
⑤EL表达式操作对象
新建一个people对象,属性有id ,name ,age;
然后我们使用get set方法。
代码如下:
1 package com.java1234.model; 2 3 public class People { 4 private int id; 5 private String name; 6 private int age; 7 public int getId() { 8 return id; 9 } 10 public void setId(int id) { 11 this.id = id; 12 } 13 public String getName() { 14 return name; 15 } 16 public void setName(String name) { 17 this.name = name; 18 } 19 public int getAge() { 20 return age; 21 } 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 27 }
对对象的操作可以直接对对象的名称操作
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <%@ page import="com.java1234.model.People" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 8 <title> El 操 作people对象 </title> 9 </head> 10 <body> 11 <% People zhangsan =new People(); 12 zhangsan.setId(1); 13 zhangsan.setName("张三"); 14 zhangsan.setAge(20); 15 request.setAttribute("zhangsan",zhangsan); 16 %> 17 <h1>编号:${zhangsan.id }</h1> 18 <h1>姓名:${zhangsan.name }</h1> 19 <h1>年龄:${zhangsan.age }</h1> 20 21 </body> 22 </html>
⑥EL表达式集合操作
我们对集合进行操作:
List all =new LinkedList();
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <%@ page import="java.util.*" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 8 <title> El 操 作people对象 </title> 9 </head> 10 <body> 11 <% List all=new LinkedList(); 12 all.add(0,"元素一"); 13 all.add(1, "元素二"); 14 all.add(2,"元素三"); 15 request.setAttribute("all", all); 16 %> 17 <h1>${all[0] }</h1> 18 <h1>${all[1] }</h1> 19 <h1>${all[2] }</h1> 20 </body> 21 </html>
⑦EL表达式运算符操作
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <%@ page import="java.util.*" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 8 <title> EL运算符操作 </title> 9 </head> 10 <body> 11 <% 12 request.setAttribute("num1",10); 13 request.setAttribute("num2",20); 14 request.setAttribute("flag1",true); 15 request.setAttribute("flag2",false); 16 %> 17 <h1>num1=${num1 } num2=${num2 }</h1> 18 <h3>num1 + num2 =${num1+num2}</h3> 19 <h3>num1 - num2 =${num1-num2}</h3> 20 <h3>num1*num2=${num1*num2 }</h3> 21 <h3>num1%num2=${num1%num2 }</h3> 22 23 <h3>逻辑运算</h3> 24 <h1>flag1=${flag1 } flag2=${flag2 }</h1> 25 <h3>flag1 && flag2 :${flag1 && flag2 }</h3> 26 <h3>flag1 || flag2 :${flag1 || flag2 }</h3> 27 <h3>!flag1 : ${!flag1 }</h3> 28 29 <h3>empty运算</h3> 30 <h3>${empty a }</h3> 31 </body> 32 </html>
以上是关于EL表达式的主要内容,如果未能解决你的问题,请参考以下文章