JavaWeb——EL和JSTL
2019-06-04 23:27
351 查看
1.EL表达式
1.1.EL概念
- EL:Expression Language,
表达式语言
作用
:替换和简化JSP页面中Java代码的编写
1.2.EL语法
${表达式}
!!!注意:
JSP默认支持EL,那么假如要输出“3 > 4”字符串样式怎么办呢?有两种方法:
使用isELIgnore
,但是这个方法会是这个页面的所有EL表达式都被忽略
使用“\”忽略个别
1.3.EL使用
1.3.1.运算
运算符:
- 算数运算符:+、-、*、/(div)、%(mod)
- 比较运算符:>、<、=、>=、<=、==、!=
- 逻辑运算符:&&(and)、||(or)、|(not)
- 空运算符:empty
- ${empty list}:用于
判断字符串、集合、数组对象是否为null或者长度是否为0- ${not empty str}:表示判断字符串、集合、数组对象是否不为null并且长度大于0
1.3.2.获取值
!!!注意:
EL表达式只能从域对象中获取值
语法:
- 1.${域名城.键名}:
从指定域中获取指定的键值
域名城:
- pageContext:pageScope
- request:requestScope
- session:sessionScope
- application(ServletContext):applicationScope
- 2.${键名}:表示一次
从最小的域中去查找是否有该键对应的值,直到找到为止
- 3.获取
对象、List集合、Map集合
的值
- 对象:${域名城.键名.属性名}
本质上会去调用对象的getter方法
- List集合:${域名城.键名[索引]}
- Map集合:${域名.键名.key名}或者${域名.键名[“key名”]}
java.class
package xpu.edu.web.servlet.EL; import java.util.Date; public class User { private String name; private int age; private Date birthday; public String getName() { return name; } public int getAge() { return age; } public Date getBirthday() { return birthday; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
JSP页面(Markdown貌似并不支持JSP代码高亮,所有有点丑,将就一下)
<%@ page import="xpu.edu.web.servlet.EL.User" %> <%@ page import="java.util.*" %><%-- Created by IntelliJ IDEA. User: 15291 Date: 2019/6/4 Time: 21:27 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>获取数据</title> </head> <body> <% User user = new User(); user.setAge(18); user.setName("邹鸡儿"); user.setBirthday(new Date()); request.setAttribute("u",user); List list = new ArrayList(); list.add("邹鸡儿"); list.add("邹大炮"); request.setAttribute("list",list); Map hashMap = new HashMap(); hashMap.put("name","邹鸡儿"); hashMap.put("age","19"); request.setAttribute("hashMap",hashMap); %> <h3>获取对象中的值</h3> ${requestScope.u}<br/> <%-- 通过对象的属性来获取 * setter或getter方法,去掉set或get,在剩余部分首字母变小写 * setName——>Name——>name --%> ${requestScope.u.name}<br/> ${requestScope.u.age}<br/> ${requestScope.u.birthday}<br/> <h3>获取List的值</h3> ${requestScope.list}<br/> ${requestScope.list[0]} ${requestScope.list[1]} <%-- 越界时会输出空字符串"" --%> ${requestScope.list[10]} <h3>获取Map的值</h3> ${requestScope.hashMap.name}<br/> ${requestScope.hashMap["name"]} </body> </html>
1.4.EL的隐式对象
EL表达式有11个隐式对象,着重了解pageContext:
可以获取JSP其他八个内置对象
${pageContext.request.contextPath}:动态获取虚拟目录
2.JSTL
2.1.JSTL概念
- JSTL:JavaServer Pages Tag Library,JSP标准标签库,是由Apache组织提供的开源的免费JSP标签
- 作用:
用于简化和替换JSP页面的Java代码
2.2.JSTL使用步骤
- 1.导入相关jar包
- 2.引入标签库:taglib指令:<% taglib %>
- 3.使用标签
2.3.常用的JSTL标签
if
:相当于Java代码的if语句
- 属性:test为必须属性,接收boolean表达式,如果表达式为true,就显示if标签体内容,如果为false,则不显示标签体内容
- 注意:
一般test属性会结合EL表达式一起使用
choose
:相当于Java代码的switch语句
- 使用choose标签声明:相当于switch声明
- 使用when标签做判断:相当于case
- 使用otherwise标签做其他情况声明:相当于d
foreach
:相当于Java代码的for语句
1.完成重复操作
属性:
1.begin:开始值
2.end:结束值
3.var:临时变量
4.step:步长
5.varStatus:循环状态对象index:容器中元素索引,从0开始
count:循环次数,从1开始
2.遍历容器
属性:
1.item:容器对象
2.var:容器中元素临时变量
3.varStatus:循环状态对象index:容器中元素索引,从0开始
count:循环次数,从1开始
相关文章推荐
- javaweb开发-javabean+EL+JSTL
- Javaweb核心之el&jstl
- Day28 JavaWeb知识 (5)JSP & EL & JSTL
- JavaWeb之JSP & EL & JSTL
- day_1_13 JavaWeb系列学习总结之jsp&el&jstl
- 【JAVAWEB学习笔记】18_el&jstl&javaee的开发模式
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- 使用 EL、JSTL 处理表单数据(转载)
- JSTL和EL一起使用的问题
- el+jstl
- JSP,查询所有商品----完善查询所以商品(jsp页面使用jstl和el)
- JavaWeb同步学习笔记之五十七、JavaWeb_EL详解
- JavaWeb学习篇之----自定义标签&&JSTL标签库详解
- JSTL的EL 变量
- web复习day06:jsp&el&jstl
- EL和JSTL表达式
- jstl与jsp的版本问题:root cause java.lang.NoClassDefFoundError: javax/el/ELException
- EL、JSTL中radio的check属性设置
- jstl与el学习笔记