<%@page import="com.bean.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>el&jstl</title>
</head>
<%
//往作用域中放数据
request.setAttribute("user", new User());
//集合List
List<User> list = new ArrayList<User>();
Collections.addAll(list, new User("隔壁老王","123456",20),new User("李四","123333",22));
request.setAttribute("list", list);
//Map
Map<String,User> map = new HashMap<String,User>();
map.put("u1", new User("隔壁老李","123456",20));
map.put("u2", new User("隔壁老刘","888888",22));
request.setAttribute("map", map);
//分数
request.setAttribute("score", 90);
//日期
request.setAttribute("time", new Date());
%>
<body>
<h1>可以认为 El表达式是JSTL表达式的一个子集,JSTL主要是用来处理界面的逻辑判断,遍历等</h1>
<h2>1.给作用域中的数据设置</h2>
<%--
c:set 给作用域中的数据赋值
c:out 输出到页面
--%>
<c:set target="${user}" property="username" value="隔壁老王"/>
user.username:<c:out value="${user.username }" default="默认值"></c:out><br/>
<h2>2.遍历foreach</h2>
<%--
begin:遍历的开始
end:结束
step:步长
var:相当于给每次遍历的数据取的别名
items:要遍历的数据
varStatus:当前遍历的数据的状态
status.index 遍历项的索引
status.count 当前是第几项
--%>
<h5>循环</h5>
<c:forEach begin="1" end="10" step="2" var="t">
${t }
</c:forEach>
<br/>
<h5>遍历List集合中的对象数据</h5>
<c:forEach items="${list }" var="u" varStatus="status">
索引:${status.index},当前第${status.count}项:${u.username }|${u.password }|${u.age }<br/>
</c:forEach>
<h5>遍历Map集合中的对象数据</h5>
<c:forEach items="${map }" var="u">
${u.key } ---> ${u.value.username }|${u.value.password }|${u.value.age }<br/>
</c:forEach>
<h2>3.进行逻辑判断</h2>
<h5>if判断</h5>
<c:if test="${score>=60 }">及格</c:if>
<h5>多重判断 c:choose</h5>
<c:choose>
<c:when test="${score>80 }">
优秀
</c:when>
<c:when test="${score>=60 }">
及格
</c:when>
<c:otherwise>
待及格
</c:otherwise>
</c:choose>
<%--
1. fn:contains(string,substring): 如果参数string中包含substring,则返回true.
2. fn:containsIgnoreCase(string,substring): 如果参数string中包含substring,则返回true(忽略大小写).
3. fn:endsWith(string,suffix): 如果参数string以参数suffix结尾,则返回true.
4. fn:escapeXml(string): 将由特殊意义的xml(和html)转换成对应的XML character entity code并返回.
5. fn:indexOf(string,substring): 返回参数substring在string中第一次出现的位置.
6. fn:join(array,separator): 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回.
7. fn:length(item): 返回参数item中包含元素的数量,参数item的类型是数组,collection或者string,如果是string则返回string的字符数.
8. fn:replace(string,before,after): 返回一个String对象,用参数after字符串替换参数string中所有出现before字符串的地方,并返回替换后的结果.
9. fn:split(string,separator): 返回一个数组,以参数separator为分隔符分隔参数string,分隔后的每一部分就是数组的一个元素.
10. fn:startsWith(string,prefix): 如果参数string以参数prefix开头,则返回true.
11. fn:substring(string,begin,end): 返回参数string的部分字符串,从参数begin开始到参数end结束,其中包括end位置的字符.
12. fn:substringAfter(string,substring): 返回参数substring在参数string中后面的那一部分字符串.
13. fn:substringBefore(string,substring): 返回参数substring在参数string中前面的那一部分字符串.
14. fn:toLowerCase(string): 将参数string的所有字符变为小写,并返回.
15. fn:toUpperCase(string): 将参数string的所有字符变成大写,并返回.
16. fn:trim(string): 将参数string的头尾空格全部去除,并返回.
--%>
<h1>函数标签库</h1>
aabbcc中是否有bb:${fn:contains("aabbcc","bb") }<br/>
<c:if test="${fn:endsWith('aabbcc','cc') }">
是以CC结束<br/>
</c:if>
替换aabbcc中的b为M:${fn:replace('aabbcc','b','M') }
<h1>格式化标签库</h1>
格式化为数字:<fmt:formatNumber value="1.8" type="number"/><br/>
格式化为人民币:<fmt:formatNumber value="100.8679" type="currency" pattern="¥.000"/><br/>
格式化百分比:<fmt:formatNumber value="0.56" type="percent"/><br/>
格式化日期:<fmt:formatDate value="${time }" pattern="yyyy年MM月dd日 hh:mm:ss"/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</body>
</html>
评论0