大家好,又见面了,我是你们的朋友全栈君。
${
表达式}
表达式可以是常量,变量,el隐含对象,el运算符和el函数
${
"hello"} //输出字符串常量
${
23.5} //输出浮点数常量
${
23+ 5} //输出算术运算结果
${
23> 5} //输出关系运算结果
${
23||5} //输出逻辑运算结果
${
23> 5?23:5} //输出条件运算结果
${
empty username} //输出empty运算结果
${
username} //查找输出变量值
${
sessionScope.user.sex} //输出隐含对象中的属性值
${
qst:fun(arg)} //输出自定义函数的返回值
对于常见的对象属性、集合数据的访问, EL提供了两种操作符:操作符 ” . “和” [ ] ” 操作符:
“.” 操作符,与在Java代码中一样, L表达式也可使用点操作符来访问对象的某个属性。 例如,访问JavaBean对象中的属性对象中的属性:
${
productBean.category.name} ,
其中productBean为一个JavaBean对象 ,category为productBean中的一个属 性对象, name为category对象的一个属性。
“[ ]”操作符,用与点操作符类似,也用于访问对象的属性,属性需使用双弓|号括起来。
${
productBean["category"]["name"] }
当属性中包含了特殊字符,如:“.” 或“-“等并非字母或数字的符号,就一定要用“ [ ] ”操作符,例如:
${
header["user-agent"]}
“[ ]”操作符可以访问有序集合或数组中的指定索引位置的某个元素,例如${array[0]};
“[ ]” 操作符可以访问Map对象的key关键字的值,例如:${map[“key”]} ;
注意”[ ]”操作符和点操作符可以结合使用,例如: ${users[0].username}。
与JSP提供的内置对象目的相同,为了更加方便的进行数据访问, EL表达式也提供了-系列可以直接使用的隐含对象。
在JSP中有四种作用域(页面域、请求域、会话域、应用域) , EL表达式针对这四种作用域提供了相应的隐含对象用于获取各作用域范围中的属性。
pageScope :用于获得页面作用范围中的属性值,相当于pageContext.getAttribute()
requestScope : 用于获得请求作用范围中的属性值,相当于request.getAttribute()
sessionScope : 用于获得会话作用范围中的属性值,相当于session.getAttribute()
applicationScope : 用于获得应用程序作用范围中的属性值,相当于application.getAttribute()
//EL: 获取session域中存放的user的性别属性
${
sessionScope.user.sex}
// jsp脚本 :
<%
User user = (User)session.getAttribute("user");
String sex = user.getSex0;
out.print(sex);
%>
//由上述JSP脚本代码与EL的对比可以看出, EL自动完成了类型转换和数据输出功能,并且大大简化了代码量
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<% session.setAttribute("myusername","zfc" );
pageContext.setAttribute("sex","男" );
%>
<body>
${sessionScope.myusername}
${pageScope.sex}
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
${param.name}
</body>
</html>
测试 : localhost:8080/web03/index.jsp?name=zhangsan
页面会打印zhangsan
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<%
Cookie cookie = new Cookie("login","zhangsan" );
%>
<body>
项目名 : ${pageContext.request.contextPath} // (/web03)
cookie 名:${cookie.login.name}
cookie 值:${cookie.value}
</body>
</html>
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164762.html原文链接:https://javaforall.cn