一、EL
1.什么是EL表达式
- 简化页面代码
- 在JSP开发中对对象的引用
- 用来获得四个作用域对象中的属性
2.EL表达式的特点
- EL表达式可以包含获取对象中的数据,自动类型转换,并且输出
3.EL表达式的方法
- 只可完成加减法不可与字符串一起加减
${str1+str2} - empty 判断是否为空若存在则false不存在则true
${empty str1}
${empty str4} - 判断符 若有则对勾
<input type=“checkbox” ${str5==“admin”?“checked”:""}>
<body>
<%
request.setAttribute("str1","10");
request.setAttribute("str2","20");
request.setAttribute("str3","abc");
request.setAttribute("str5","admin");
%>
<%--只可完成加减法不可与字符串一起加减--%>
${str1+str2}
<%--empty 判断是否为空若存在则false不存在则true--%>
${empty str1}
${empty str4}
<%--判断符 若有则对勾--%>
<input type="checkbox" ${str5=="admin"?"checked":""}>
</body>
<head>
<title>Title</title>
</head>
<body>
<%
Users user = new Users("admin","admin");
request.setAttribute("user",user);
%>
${user.account}<%--本质是调用Users类的getname()方法--%>
${user}
</body>
- 当4个作用域对象中都要相同的name属性时,
- 默认按照最小的pageContext,request,session,application的顺序查找
- 同一页面 同一请求 同一会话 同一应用程序
- 同一浏览器 同一服务器
<body>
<%
pageContext.setAttribute("name","pageContext");
application.setAttribute("name","application");
request.setAttribute("name","request");
session.setAttribute("name","session");
%>
<%--
当4个作用域对象中都要相同的name属性时,默认按照最小的pageContext,request,session,application的顺序查找
同一页面 同一请求 同一会话 同一应用程序
同一浏览器 同一服务器
--%>
${name}
${applicationScope.name}
${pageScope.name}
${requestScope.name}
</body>
二、JSTL
1.什么是JSTL
- JSTL就是JSP标准标签库,使用JSTL实现JSP页面中逻辑处理
2.JSTL环境搭建
- 导入标签库jar文件
- 在JSP页面添加taglib指令
- 使用JSTL标签
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3.条件标签
<body>
<%
request.setAttribute("num",10);
%>
<c:if test="${num==10}" var="res" scope="request">
<%--res定义一个变量 健 page值定存储结果的作用域--%>
成立
</c:if>
例如在jsp的其他位置需要使用上面的条件判断的结果
${requestScope.res}
</body>
4.迭代标签
(1)循环数组
<body>
<%
String[] array = {"a","b","c","d"};
request.setAttribute("array",array);
%>
<c:forEach items="${array}" var="a">
${a}
<br/>
</c:forEach>
</body>
<body>
<%
String s = "ad:ac:asd:sads";
request.setAttribute("str",s);
%>
<c:forTokens items="${str}" delims=":" var="s">
${s}
<br/>
</c:forTokens>
</body>
(2)循环列表
<body>
<%
List<Users> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
Users users = new Users("admin"+i,10+i);
list.add(users);
}
request.setAttribute("list",list);
%>
<table border="1" width="400">
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
<td>操作</td>
</tr>
<a:forEach items="${list}" var="user" varStatus="s" begin="3" end="5">
<tr>
<td>${s.index}${s.count}${s.last}${s.begin}</td>
<%-- 计数从定数开始 计数从一开始 --%>
<td>${user.account}</td>
<td>${user.i}</td>
<td><a href="">删除</a> </td>
</tr>
</a:forEach>
</table>
5.格式化日期
- <%–<fmt:setLocale value="${locale}"></fmt:setLocale>–%>
- <%–国际化 程序可以适应不同国家的语言,日期,货币显示风格–%>
</head>
<body>
<%
request.setAttribute("date",new Date());
request.setAttribute("locale", Locale.US);
%>
<%--<fmt:setLocale value="${locale}"></fmt:setLocale>--%>
<%--国际化 程序可以适应不同国家的语言,日期,货币显示风格--%>
<fmt:formatDate value="${date}" pattern="yyyy年MM月dd日 HH:mm:ss"></fmt:formatDate>
</body>