EL表达式Expression Language
表达式语言Expression Language
目的:简化jsp代码
EL内置对象
1、pageContext
2、pageScope
3、requestScope
4、sessionScope
5、applicationScpoe
6、param
7、paramValues
8、header
9、headerValues
10、cookie
11、initParam
示例1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL表达式</title> </head> <body> <% pageContext.setAttribute( "name" , "Allen" ); request.setAttribute( "age" , 24 ); session.setAttribute( "sex" , "女" ); application.setAttribute( "cellphone" , 131 ); %> <h3>姓名:${name }</h3> <h3>年龄:${age }</h3> <h3>性别:${sex }</h3> <h3>电话:${cellphone }</h3> </body> </html> |
1 2 | //寻找值的顺序 //page>request>session>application |
当pageContext、request、session、application都设计键为name是,值value是谁的呢?
验证寻找顺序:
1 2 3 4 5 6 7 8 | <% pageContext.setAttribute( "name" , "Allen" ); request.setAttribute( "name" , 24 ); session.setAttribute( "name" , "女" ); application.setAttribute( "name" , 131 ); %> <h3>姓名:${name }</h3> |
【EL表达式接受请求参数】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL表达式</title> </head> <body> <%-- post提交 --%> <form method= "post" action= "target.jsp" > <input type= "text" name= "userName" /> <input type= "submit" value= "提交到target.jsp" > </form> <%-- get提交 --%> <a href= "target.jsp?age=24" >get提交</a> <%-- post提交多个参数 --%> <form method= "post" action= "target.jsp" > <input type= "checkbox" name= "instr" value= "登山" />登山 <input type= "checkbox" name= "instr" value= "滑雪" />滑雪 <input type= "checkbox" name= "instr" value= "骑行" />骑行 <input type= "checkbox" name= "instr" value= "游泳" />游泳 <input type= "submit" value= "提交到target.jsp" > </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>target</title> </head> <body> <% request.setCharacterEncoding( "utf-8" ); %> <h3>姓名:${param.userName }</h3> <h3>年龄:${param.age }</h3> <h3>兴趣 1 :${paramValues.instr[ 0 ] }</h3> <h3>兴趣 2 :${paramValues.instr[ 1 ] }</h3> <h3>兴趣 3 :${paramValues.instr[ 2 ] }</h3> <h3>兴趣 4 :${paramValues.instr[ 3 ] }</h3> </body> </html> |
【对象操作】简单java类不用page引入,使用JavaBean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL</title> </head> <body> <jsp:useBean id= "user" scope= "page" class = "com.zhiqi.model.User" ></jsp:useBean> <jsp:setProperty property= "id" name= "user" value= "10010" ></jsp:setProperty> <jsp:setProperty property= "name" name= "user" value= "王晓丽" ></jsp:setProperty> <jsp:setProperty property= "sex" name= "user" value= "女" ></jsp:setProperty> <jsp:setProperty property= "age" name= "user" value= "24" ></jsp:setProperty> <jsp:getProperty name= "user" property= "id" ></jsp:getProperty><br> <jsp:getProperty name= "user" property= "name" ></jsp:getProperty><br> <jsp:getProperty name= "user" property= "sex" ></jsp:getProperty><br> <jsp:getProperty name= "user" property= "age" ></jsp:getProperty><br> <%--EL 与JavaBean比较 --%> ${user.id }<br><%--EL对象操作 --%> ${user.name }<br> ${user.sex }<br> ${user.age }<br> </body> </html> |
【运算符操作】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL运算符操作</title> </head> <body> <% request.setAttribute( "x" , 10 ); %> <% request.setAttribute( "y" , 4 ); %> <%--算数四则原酸--%> ${x+y }<br> ${x-y }<br> ${x*y }<br> ${x/y }<br> ${x%y }<br> <% request.setAttribute( "z" , true ); %> <% request.setAttribute( "fal" , false ); %> <%--布尔运算 --%> ${z }<br> ${!z }<br> ${z && fal }<br> ${z || fal }<br> <%--空判断 --%> 空判断:${empty z }<br> <% request.setAttribute( "z" , "" ); %> 空判断:${empty z }<br> <%--三目运算 --%> <h4>x与y的大小:${x>y? x:y }</h4> </body> </html> |
【EL操作List】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <% @page import = "java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL操作List</title> </head> <body> <% List l= new LinkedList(); l.add( 0 , "北京" ); l.add( 1 , "上海" ); l.add( 2 , "广州" ); request.setAttribute( "l" ,l); %> ${l[ 0 ] }<br> ${l[ 1 ] }<br> ${l[ 2 ] }<br> </body> </html> |
【补充】
转义的使用-数组的使用-禁用EL的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>EL2</title> </head> <body> <% request.setAttribute( "userName" , "Anner" ); %> <p>转义如何使用</p> ${ 10 + 2 }<br> \${ 10 + 2 }<br> ${requestScope.userName }<br> \${requestScope.userName }<br> <p>数组的使用</p> <% String [] str={ "上海" , "南京" , "重庆" , "西安" }; request.setAttribute( "str" ,str); %> ${str[ 0 ] }<br> ${str[ '1' ] }<br> ${str[ "2" ] }<br> \${str[ 3 ] }<br> <p>设定页面不适用EL,当使用其他与EL冲突的技术,可以这样做!</p> <p>方法 1 :<%@ page isELIgnored= "false" %> page指令设置为 true </p> <p>方法 2 :xml配置</p> </body> </html> |
1 2 3 4 5 6 7 8 9 10 | <? xml version="1.0" encoding="UTF-8"?> < web-app > < jsp-config > < jsp-property-group > < url-pattern >*.jsp</ url-pattern > < el-ignored >true</ el-ignored > </ jsp-property-group > </ jsp-config > </ web-app > |
【】
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步