JSP中EL表达式的应用

2021-03-13 17:29

阅读:548

标签:bean   getc   detail   jsp页面   log   等价   pre   char   users   

1.EL表达式的概念

EL全称Expression Language,用来简化JSP页面的数据访问操作,代替、,提供一个更清晰简洁的视图层。

通常与JSTL标签一起使用。

 

2.EL表达式语法

${expression},expression为有效表达式,如常量,变量,操作符和函数调用。

 

3..与 [ ] 运算符

EL 提供 . 和 [ ] 两种运算符来存取数据。

${user.name}等价于${user["name"]}或${user[‘name‘]}

. 和 [ ] 也可以同时混合使用

${requestScope.userlist[0].name},回传结果为用户数据列表中第一个用户的名字。

不过,以下两种情况,两者会有差异(转自:https://blog.csdn.net/JavaNotes/article/details/80722153):

(1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],

例如:${user.My-Name }

上述是不正确的方式,应当改为:${user["My-Name"] }

(2) 我们来考虑下列情况:

${sessionScope.user[data]}

此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex};

假若data 的值为"name"时,它就等于${sessionScope.user.name}。

因此,如果要动态取值时,就可以用上述的方法来做,但无法做到动态取值。

 

4.EL表达式的简单应用

@page import="java.util.Map"%>
@page import="java.util.HashMap"%>
@page import="java.util.ArrayList"%>
@page import="java.util.List"%>
@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    @page import="entity.User"%>
DOCTYPE html>
html>
head>
meta charset="UTF-8">
title>EL表达式用法title>
head>
body>


br>获取JSP的隐式对象,并使用其中的方法

out.println("获取项目根路径:"+request.getContextPath()+"
"); out.println("获取response对象的字符集:"+response.getCharacterEncoding()); %> br>使用EL表达式获取项目根路径:${pageContext.request.contextPath} br>使用EL表达式获取response对象的字符集:${pageContext.response.characterEncoding} hr> //设置域对象的值 pageContext.setAttribute("username", "pageContext张三"); pageContext.setAttribute("password", "pageContext123456"); request.setAttribute("username", "request张三"); request.setAttribute("password", "request123456"); session.setAttribute("username", "session张三"); session.setAttribute("password", "session123456"); application.setAttribute("username", "application张三"); application.setAttribute("password", "application123456"); %> out.println("Java程序片中获取request域对象的值"); %> br>用户名:=request.getAttribute("username") %> br>密码:=request.getAttribute("password") %> br>EL从域中取出数据(EL最重要的作用)获取的顺序:依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找 br>用户名:${username} br>密码:${password} hr> br>EL表达式中的隐式对象 br>\${sessionScope.username}${sessionScope.username} br>\${requestScope.username}${requestScope.username} br>\${username}${username} br>\${applicationScope.username}${applicationScope.username} hr> br>EL借助四个域对象来读取javabean的属性值 User u = new User(); u.setName("张三"); out.println(u.getName()); request.setAttribute("user", u); %> br>EL读取javaBean属性:\${u.name},无法读取 br>EL读取javaBean属性:\${user.name}${user.name} hr> br>EL算术运算、关系运算 br>\${1+2}=${1+2} br>\${1-2}=${1-2} br>\${1*2}=${1*2} br>\${1/2}=${1/2} br>\${1 div 2}=${1 div 2} br>\${1%2}=${1%2} br>\${1 mod 2}=${1 mod 2} br>\${12?true:false}=${1
>关系运算中,gt表示大于,ge表示大于等于,lt表示小于,le表示小于等于,eq表示等于,ne表示不等于 br>\${100>200}=${100>200} br>\${100 ge 200}=${100 ge 200} hr> ListUser> users = new ArrayListUser>(); users.add(u); users.add(new User("李四","123456")); request.setAttribute("userlist", users); %> br>\${userlist}${userlist} br>\${userlist[0].name}${userlist[0].name} br>\${userlist[1].name}${userlist[1].name} hr> Map map1 = new HashMap(); map1.put("username", "york"); map1.put("user", u); request.setAttribute("userlist2", map1); %> br>\${userlist2.username}${userlist2.username} br>\${userlist2.user.name}${userlist2.user.name} body> html>

运行结果:

技术图片

 

 

参考文章:

https://blog.csdn.net/JavaNotes/article/details/80722153

JSP中EL表达式的应用

标签:bean   getc   detail   jsp页面   log   等价   pre   char   users   

原文地址:https://www.cnblogs.com/YorkZhangYang/p/12817916.html

上一篇:CSS 弹性布局

下一篇:js防抖节流


评论


亲,登录后才可以留言!