EL表达式

EL  表达式

1. EL  语法和使用
EL(Expression Language) 是为了使 JSP 写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让 Jsp 的代码更 加简化。语法结构非常简单: ${expressio}EL 表达式一般操作的都是域对象中的数据,操作不了局部变量。域对象的概念在 JSP 中一共有四个:page, request, session, application;范围依次是,本页面,一次请求, 一次会话,整个应用程序。而 EL 默认的查找方式为从小到大查找,找到即可。当域对象全 找完了还未找到则返回空字符串””。
当需要指定从某个特定的域对象中查找数据时可以使用四个域对象对应的空间对象,分别是:pageScope, requestScope, sessionScope, applicationScope。


2. EL  运算
使用 EL 表达式可以用来判断集合中是否有元素 ${empty list}
1) List  遍历
<%
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list", list);
%>
${empty list} (是否为空,如果为空就是true,不为空就是false)
<br /> ${list[1] }
<br />

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    ${param }<br/>
    ${param.uname }<br/>
    ${param['upwd'] }<br/>

    ${paramValues }<br/>
    ${paramValues['uname'] }<br/>
    ${paramValues['uname'][0] }<br/>
    ${paramValues.upwd[0] }<br/>
    <%-- ${paramValues.upwd[1] }<br/> --%>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    pageContext.setAttribute("uname", "zhaoliu");
    request.setAttribute("uname", "zhangsan");
    session.setAttribute("uname", "wangwu");
    application.setAttribute("uname", "admin");
    
%>
${uname } <br/>
<%=pageContext.getAttribute("uname") %> <br/>
${upwd } <br/>
<%=pageContext.getAttribute("upwd") %><br/>
${sessionScope.uname }<br/>

${100 }<br/>

</body>
</html>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList" %>
<%@page import="com.shsxt.entity.User" %>
<%@page import="java.util.Map" %>
<%@page import="java.util.HashMap" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
    List<String> nn = new ArrayList<>();
    nn.add("hello");
    nn.add("world");
    User user= new User("zhangsan","zhangsan666",18,true);
    user.setNn(nn);
    
    request.setAttribute("userObject", user);
%>

${userObject }<br/>
${userObject.userName }
${userObject.userAge }
${userObject.userSex }
${userObject.nn }
${userObject.nn[0] }
<%
    List<String> list=new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    request.setAttribute("list", list);
    List<String> list2 =new ArrayList<String>();
    request.setAttribute("list2",list2);
    
%>

${list }
${list2 }
${list3 }
${list[0] }
${list2[0] }
${empty list }
${empty list2 }
${empty list3 }
${list.size() }
${list3.size() }
${list2.size() }
     <%
        Map map = new HashMap();
        map.put("aaa", "111");
        map.put("bbb", 2222);
        map.put("ccc", 333);
        request.setAttribute("map", map);
    %>
    
    ${map }
    ${map.aaa }
${map['bbb'] }
</body>
</html>

 


2)  访问 map
这里使用到了 el 的另一种取值方式[“”]
<%
Map map = new HashMap();
map.put("aaa", "111");
map.put("bbb", 2222);
map.put("ccc-a", 333);
request.setAttribute("map", map);
%>
${empty map} ${map.aaa }
<br /> ${map["bbb"]}
<br /> ${map["ccc-a"]}
3)  做+ 、- 、* 、/( 也可以使用 div  来表示) 、% 、==
<%
String a = "aaa";
String b = "aaa";
%>
<%=a == b%>
${4 div 2 }
<br />
注意:String 也使用==比较
<%
request.setAttribute("a", 10);
request.setAttribute("b", 10);
%>

<h2>${a+b }</h2>
<h2>${a==b }</h2>
<%
request.setAttribute("a", "aaaa");
request.setAttribute("b", "aaaa");
%>
<h2>${a==b }</h2>

转载于:https://www.cnblogs.com/liu1459310172/p/9574934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值