EL 表达式语句

本贴最后更新于 1420 天前,其中的信息可能已经水流花落

JSP 表达式语言 EL (Expression language)

介绍

JSP EL 既可以创建创建算术表达式也可以创建逻辑表达式。在 JSP EL 表达内可以使用整型数,浮点数,字符串,常数 true,false,还有 null。在 JSP 页面可以代替 Java 代码。

示例

//${域对象.域对象中的对象.域对象中的对象的属性.域对象中的对象的属性的属性} 可以输出级联属性
${requestScope.user.uAddress.schoolAddress }<br>

EL 的优点

简化 JSP 页面,解决在传统 Java 代码在 JSP 页面的代码参杂问题。当 EL 表达式的值为 null 时,会在页面上显示空白,即什么都不显示。

EL 操作符

· 点操作符

使用方便但是不能访问特殊字符和数组,能访问一个 Bean 属性或者一个映射映射,还可以访问 map 类型的对象

${requestScope.user.uAddress.homeAddress }

Map<String, Object> map = new HashMap<>();
		map.put("CN", "中国");
		map.put("KR", "韩国");
		map.put("FR", "法国");
		map.put("CA", "加拿大");
		map.put("JP", "日本");
${requestScope.map.CN }<br>
${requestScope.map.KR }<br>
${requestScope.map.FR }<br>
${requestScope.map.JP }<br>
${requestScope.map.CA }<br>

[] 中括号操作符

功能强大:可以包括特殊字符(· _ 、),能访问一个枚举或链表的元素,还可以获取变量值

${requestScope['user']['uPwd'] }<br>
${requestScope["user"]["uId"] }<br>
${requestScope.list[0] }<br>
${requestScope.list[1] }<br>

关系运算符

${3>2 }*******${3 gt 2 }<br>
${2>=2 }*******${2 ge 2 }<br>
${2<3 }*******${2 lt 3 }<br>
${2<=2 }*******${2 le 2 }<br>
${2==2 }*******${2 eq 2 }<br>
${3!=2 }*******${2 ne 1}<br>

逻辑运算符

${true&&false}*******${true and false}<br>
${!true}*******${not true}<br>
${true||false}*******${true or false}<br>
${empty list1}*******可以判断字符串、数据、集合的长度是否为0,为0返回true<br>
${empty list}*******非0返回false<br>

EL 内置对象

一共 11 个内置对象,无需创建即可以使用。这 11 个内置对象中有 10 个是 Map 类型的,最后一个是 pageContext 对象

内置对象

隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request 对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie 值
pageContext 当前页面的 pageContext

作用域访问对象

pageScope,requestScope,sessionScope,applicationScope 变量用来访问存储在各个作用域层次的变量。

全域查找:${属性名}表示依次在 pageScope、requesScopet、sessionScope、appliationScope 四个域中查找名字对应的属性。

pageScope:${pageScope.name}等同与pageContext.getAttribute(“name”);

requestScope:${requestScope.name}等同与request.getAttribute(“name”);

sessionScoep: ${sessionScope.name}等同与session.getAttribute(“name”);

applicationScope:${applicationScope.name}等同与application.getAttribute(“name”);

请求参数访问对象

param 和 paramValues 对象用来访问参数值,通过使用 request.getParameter 方法和 request.getParameterValues 方法。主要用来获取表单数据。

<form action="elindex.jsp">
	用户名:<input type="text" name="uname">
	兴趣:<br>
	足球:<input type="checkbox" name="hobbies" value="football">
	篮球:<input type="checkbox" name="hobbies" value="basetball">
	乒乓球:<input type="checkbox" name="hobbies" value="tabletennis">
	网球:<input type="checkbox" name="hobbies" value="tabletennis">
	<input type="submit" value="提交">
</form>
${param.uname}<br>
${paramValues.hobbies[0]}<br>
${paramValues.hobbies[1]}<br>

请求头访问对象

header 和 headerValues 对象用来访问信息头,通过使用 request.getHeader 方法和 request.getHeaders 方法。

${header["user-agent"]}<br>

初始化参数访问对象

initParam 是 Map<String,String> 类型。它对应 web.xml 文件中的参数。

Cookie 访问对象

cookie 是 Map<String,Cookie> 类型,其中 key 是 Cookie 的名字,而值是 Cookie 对象本身。

pageContext 对象

pageContext 对象是 JSP 中 pageContext 对象的引用。通过 pageContext 对象,您可以访问 request 对象。

EL 表达式 说明
${pageContext.request.queryString} pageContext.getRequest().getQueryString();
${pageContext.request.requestURL} pageContext.getRequest().getRequestURL();
${pageContext.request.contextPath} pageContext.getRequest().getContextPath();
${pageContext.request.method} pageContext.getRequest().getMethod();
${pageContext.request.protocol} pageContext.getRequest().getProtocol();
${pageContext.request.remoteUser} pageContext.getRequest().getRemoteUser();
${pageContext.request.remoteAddr} pageContext.getRequest().getRemoteAddr();
${pageContext.session.id} pageContext.getSession().getId();
${pageContext.servletContext.serverInfo} pageContext.getServletContext().getServerInfo();
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3165 引用 • 8206 回帖
  • Web
    115 引用 • 430 回帖 • 8 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...