七. EL
Expressopm Language,可以代替JSP页面中的JAVA代码
a. 传统JSP
用java代码显示数据的弊端:类型转换、需要处理null、代码参杂
b. el
- 表达方式:
${域对象 . 域对象中的属性 . 属性的属性}<br>
${requestScope.student.sno}<br>
一般用点操作符,但不能有特殊字符(. 、-) - 用
[""]
操作符就可以,比如["my-name"]
(单双引号都可以) - 可以获取变量值
String name = "student";
${
requestScope[name]}<br>
-
还可以获取数组元素
${requestScope.list[0]}<br>
-
可以获取map
Map<String,Object> map = new HashMap<>();
map.put("cn","中国");
map.put("us","美国");
req.setAttribute("map",map);
${
requestScope.map.cn}<br>
${
requestScope.map["us"]}<br>
c. el的运算符
c. el的empty运算符
判断有值为false,不存在或者null则为true
c. el表达式的隐式对象
不需要new就能使用的对象(自带的对象)
-
作用域访问对象(EL对象)
pageScope、requestScope、sessionScope、appl icationScope
如果不指定域对象,则默认会根据从小到大的顺序依次取值 -
参数访问对象:获取表单数据(超链接中的值、地址栏的值)
普通:request.getParameter()、request.getParameterValues()
el: p a r a m s 、 {params}、 params、{paramsValues} -
JSP隐式对象
在el中可以通过pageContext获取其他jsp隐式对象
例如:${pageContext.session} \ ${pageContext.request.serverPort}端口号
示例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>