EL/JSTL
1.什么是EL
2.EL使用
3.什么是JSTL
4.JSTL常用
01什么是EL表达式
什么是EL表达式
EL(Express Lanuage)表达式可以嵌入在jsp页面内部减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。${EL表达式}
主要用途
pageContext | ${pageScope.key}; |
request | ${requestScope.key} |
session | ${sessionScope.key} |
application | ${applicationScope.key} |
简写
EL从四个域中获得某个值${key}
这样写没有指明域,就会按一定顺序到每个域当中去找找到第一个为止(依次从pageContext域,request域,session域,application域)
02EL内置对象
pageScope | 获取JSP中pageScope域中的数据 |
requestScope | 获取JSP中requestScope域中的数据 |
sessionScope | 获取JSP中sessionScope域中的数据 |
applicationScope | 获取JSP中applicationScope域中的数据 |
param | request.getParameter() |
paramValues | rquest.getParameterValues() |
headerValues | request.getHeaderValues() |
initParam | this.getServletContext().getInitParameter(name) |
cookie | request.getCookies()---cookie.getName()---cookie.getValue() |
pageContext |
pageContext可获取其他八大对像 |
header | request.getHeader(name) |
例:用EL的pageContext获得当前工程路径
// 虽然EL里面没有request对象,但用pageContext就可以${pageContext.request.contextPath}
内部可以进行运算,只要有结果返回
${1+1} | 2 |
${empty user} | 是否为空 true/false |
${user==null?true:false} | 判断语句 |
03什么是JSTL
什么是JSTL
JSTL(JSP Standard Tag Library),JSP标准标签库可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能JSTL出现的目的同EL一样也是要代替jsp页面中的脚本代码
引入标签库
JSTL的使用的标签库需要引用才能使用
JSTL标准标签库有5个子库
库名 | 地址 | 前缀 |
---|---|---|
Core:核心库 | http://java.sun.com/jsp/jstl/core | c |
I18N:国际化库 | http://java.sun.com/jsp/jstl/fmt | fmt |
SQL | http://java.sun.com/jsp/jstl/sql | sql |
XML | http://java.sun.com/jsp/jstl/xml | x |
Functions | http://java.sun.com/jsp/jstl/functions | fn |
把JSTL标签库jar包引入工程当中
引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
04JSTL常用
if标签
<c:if test="布尔表达式"> <p>true<p></c:f>//当布尔表达式为正的时候才显示里面的标签
//结合EL表达式<c:if test="${empty user}"> <p>true<p></c:f>
forEach标签
普通循环
//从0-5循环,定义的值其实是存在pageContext域<c:forEach begin="0" end="5" var="i"> ${i}</c:forEach>
增加for循环
<%List<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");session.setAttribute("list",list);%>
// 遍历里面的元素<c:forEach items="${list}" var="i"> ${i}</c:forEach>
它,
不仅仅是一个码