jsp java el表达式_Java-EL表达式替换和简化jsp页面中java代码的编写

本文详细介绍了Expression Language(EL)表达式语言在JSP中的作用,包括其语法、运算符、空运算符的使用,以及如何从不同域中获取和设置值。EL简化了页面中的Java代码,并提供了便捷的方式来检查对象是否为空。通过示例,展示了EL如何处理对象、List集合和Map集合,以及如何利用隐式对象动态获取虚拟目录。

概念:Expression Language 表达式语言

作用:替换和简化jsp页面中java代码的编写

语法:${表达式}

注意:

jsp默认支持el表达式,如果要忽略el表达式

设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式

${表达式}:忽略当前这个el表达式

使用:

运算

* 运算符

算数运算符:+ - * /(div) %(mod)

比较运算符:> < >= <= == !=

逻辑运算符:&&(and)||(or) !(not)

空运算符:empty

功能:用于判断字符串,集合,数组对象是否为null或者长度是否为0

${empty list}:判断字符串,集合,数组对象是否为null或者长度是否为0

${not empty list}:表示判断字符串,集合,数组对象是否不为null并且长度>0

获取值

1. el表达式只能从域对象中获取值

2. 语法

${域名称. 键名}:从指定的域中获取指定键的值

域名称:

pageScope -->pageContext

requestScope -->request

sessionScope -->session

applicationScope-->application(ServletContext)

举例:

在request域中存储了name=张三

获取:${requestScope.name}

${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止 ${name}

获取对象,List集合,Map集合

对象:${域名称.键名.属性名}

* 本质上会去调用对象的getter方法

List集合:${域名称.键名[索引]}

Map集合:${域名称.键名.key名称}或者${域名称.键名["key名称"]}

隐式对象:

* el表达式中有11个隐式对象

* pageContext:

获取其他8个内置对象

在jsp页面动态获取虚拟目录:${pageContext.request.contextPath}

运算符

Title

${3>4}

\${3>4}


算数运算符

${3+4}

${3-4}

${3 % 4}

${3 mod 4}

${3 div 4}

${3 / 4}

比较运算符

${3==4}

逻辑运算符

${3>4 && 3<4}

${3>4 and 3<4}

empty运算符

String str="abc";

request.setAttribute("str",str);

List list=new ArrayList();

request.setAttribute("list",list);

%>

${empty str}

${not empty str}

${not empty list}

域中存取数据

el获取域中的数据

session.setAttribute("name","李四");

//在域中存储数据

request.setAttribute("name","张三");

session.setAttribute("msg","23");

%>

el获取值

${requestScope.name};

${sessionScope.msg};

${name};

${sessionScope.name};

存取对象与集合数据

el获取对象数据

User user=new User();

user.setAge(23);

user.setName("张三");

user.setBirthday(new Date());

request.setAttribute("u",user);

List list = new ArrayList();

list.add("aaa");

list.add("bbb");

list.add(user);

request.setAttribute("list",list);

Map map=new HashMap();

map.put("sname","李四");

map.put("gender","男");

map.put("user",user);

request.setAttribute("map",map);

%>

el获取对象中的值

${requestScope.u};

* 通过对象的属性来获取

* setter和getter方法,去掉set和get,再将剩余部分,首字母变小写

* setName -->Name -->name

--%>

${requestScope.u.name}

${requestScope.u.age}

${requestScope.u.birthday}

${u.birthday.year}

${u.birthday.month}

el获取List中的值

${list}

${list[0]}

${list[1]}

${list[10]}

${list[2].name}

el获取Map中的值

${map.gender}

${map["gender"]}

${map.user.name}

动态获取虚拟目录

el的隐式对象

${pageContext.request}

在jsp页面动态获取虚拟目录

${pageContext.request.contextPath}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值