Java基础82 jsp中的EL表达式(网页知识)

时间:2024-12-10 14:03:37

1、EL表达式的作用

EL表达式的作用:向浏览器输出域对象中的变量值或者表达式计算结果。
语法:${变量或者表达式}

注:

Jsp的核心语法:jsp的表达式<%= %>和jsp的脚本<% %>。
jsp的开发原则:尽量在jsp页面中少写甚至不写java代码,使用EL表达式替换掉jsp表达式。

2、EL表达式的语法

1) 输出基本的数据类型变量
  1.1从四个域中获取
        ${name}
  1.2指定域获取
        ${pageScope.name}
        域范围:pageScope/requestScope/sessionScope/applicationScope
2) 输出对象的属性值
  ${Student.name}     注意:.name 相当于.getName()方法
3)输出list集合
  ${list[0].name}     注意:[0] 相当于get(下标)方法
4)输出map集合
  ${map[key].name}    注意:[key] 相当于get(key)方法

3、实例

例1:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式语法</title>
</head>
<body>
<%
String name="rose";
//放入域对象中
//pageContext.setAttribute("name",name);
pageContext.setAttribute("name",name,PageContext.PAGE_SCOPE);
%>
<%-- 打印到页面 --%>
<%=name %>
<br/> <%--从四个域中自动搜索--%>
jsp表达式:<%=pageContext.findAttribute("name")%>
EL表达式:${name }
<br/> <%-- 从指定域中获取数据 --%>
EL表达式:${pageScope.name }
<%--
${pageScope.name} 等同于 <%=pageContext.getAttribute("name",pageContext.PAGE_SCOPE)%>
--%>
</body>
</html>

例2

 <%@page import="com.bw.entity.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>EL输出不同类型的数据</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%-- 1)EL输出对象的属性 --%>
<%
//保存数据
Student student=new Student("jack",20);
//放入域中
pageContext.setAttribute("student",student); //list集合(保存数据)
List<Student> list=new ArrayList<Student>();
list.add(new Student("rose",18));
list.add(new Student("LiLi",18));
list.add(new Student("jingjing",20));
//放入域中
pageContext.setAttribute("list",list); //Map集合(保存数据)
Map<String,Student> map=new HashMap<String,Student>();
map.put("100", new Student("Mark",20));
map.put("101", new Student("tian",30));
map.put("102", new Student("ergouzi",21));
//放入域中
pageContext.setAttribute("map", map);
%> <%--使用EL表达式获取对象 --%>
${list[0].name } - ${list[0].age }<br/>
${list[1].name } - ${list[1].age }<br/>
${list[2].name } - ${list[2].age }<br/> <%--
list[0]等价于(中括号相对于调用了get(参数)方法)
((list)pageContext.findAttribute("list")).get(0)
--%>
<hr/> <%--使用EL获取Map对象--%>
${map['100'].name } - ${map['100'].age }<br/>
${map['101'].name } - ${map['101'].age }<br/>
${map['102'].name } - ${map['102'].age }<br/>
</body>
</html>

实例结果图

Java基础82 jsp中的EL表达式(网页知识)

例3:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>EL表达式计算</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
26 <%--
27 1)算术的表达式
28 + - * /
29 --%>
加法运算:${10+5 }<br/>
乘法运算:${10*5 }
<hr/> 34 <%--
35 2)比较运算符
36 > < >= <= == !=
37 --%>
${10>5 }<br/>
${10<5 }<br/>
${10!=10 }<br/>
<hr/> 43 <%--
44 3)逻辑运算符
45 && || !
46 --%>
${true && true }<br/>
${true || false }<br/>
${!false }<br/>
<hr/> 52 <%--
53 4)判断
54 null 或者 空字符串 :empty
55 --%>
<%
String name="hello";
pageContext.setAttribute("name",name);
%>
判断null: ${name==null }</br>
判断空字符串: ${name=="" }</br>
判断:${name==null || name=="" }<br/>
另一种判断空的写法:${empty name }
</body>
</html>

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/10163207.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!