jsp学习(十二,JSTL(El扩展升级))

一、JSTL概述

JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用起来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

JSTL一共包含四大标签库

  1. core:核心标签库,我们学习的重点;
  2. fmt:格式化标签库,只需要学习两个标签即可;
  3. sql:数据库标签库,不需要学习了,它过时了;
  4. xml:xml标签库,不需要学习了,它过时了。

java和tomcat是没有这个包的,所以得手动导入
下载
把两个架包放到lib下,放错了读不出来
在这里插入图片描述
然后右键add path就行了

二、语法知识

很简单,看看例子就行了

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
<% 
	request.setAttribute("aaa", 111);
%>
<body>
	<h3>1.输出</h3>
	<c:out value="123"/>
	<c:out value="${aaa}"/>
	<c:out value="${aaaa}" default="xxx"/>
	<%
		request.setAttribute("aa2", "<h5>123</h5>");
	%>
	<c:out value="${aa2}" escapeXml="false"/>
	<c:out value="${aa2}" escapeXml="true"/>
	<c:out value="${aa2}" escapeXml="false"/>
	<!-- escapeXml是false时就是html语句 -->
	
	<h3>2.输入(设置属性)</h3>
	<c:set var="a" value="hello"/>
	<c:set var="a" value="hello" scope="session"/><c:set var="a" scope="session">hello</c:set>
	一下到javaBean只是个例子,运行会报错<!--
	<c:set value="郑子明" target="${user}" property="name"></c:set><!--向javaBean中添加属性和值-->
	<c:set target="${user}" property="age">19</c:set>
	<li>从session中得到的值:${sessionScope.name1}</li>
	<li>从session中得到的值:${sessionScope.name2}</li>
	<li>从Bean中获取对象user的name值:<c:out value="${user.name}"></c:out></li>
	<li>从Bean中获取对象user的age值:<c:out value="${user.age}"></c:out></li>-->
	<!--设置变量  -->
	
	<h3>3.删除</h3>
	<c:remove var="a"/>
	<!-- 移除所有的变量a -->
	<h3>4.查找路径</h3>
	<c:url value="/"/>
	<c:url value="/" var="a" scope="request"/><br>
	<c:out value="${a}"/><br>
	
	<c:url value="/AServlet">
	<c:param name="username" value="abc"/>
	<c:param name="password" value="123"/></c:url><br>
	<h3>5.if</h3>
	<c:set var="a" value="hello"/>
	<!-- 默认给pageContext添加 -->
	<c:if test="${not empty a}">
		<c:out value="${a}"/>
	</c:if><br>
	<h3>6.choose</h3>
	<%request.setAttribute("score", 70); %>
	<c:set var="score" value="${score}"/>
	<c:choose>
		<c:when test="${score>50}">Niubi</c:when>
		<c:when test="${score<50}">Wandan</c:when>
		<c:otherwise>null</c:otherwise>
	</c:choose><br>
	<h3>7.forEach</h3>
	<c:set var="sum" value="0"/>
	<c:forEach var="i" begin="1" end="10" step="1">
		<c:set var="sum" value="${sum+i}"/>
		<c:out value="${i} "/>
	</c:forEach>
	<c:out value="sum=${sum}"/>
	
	<c:forEach var="i" begin="1" end="10" step="1">
		<c:set var="sum" value="${sum+i}"/>
		<c:out value="${i} "/>
	</c:forEach><br>
	
	<%
		int a[] = {'a','b','c'};
	pageContext.setAttribute("a", a);
	%>
	<c:forEach var="item" items="${a}" varStatus="vs">
		<c:out value="${vs.first} "/>
		<c:out value="${vs.count} "/>
		<c:out value="${vs.index} "/>
		<c:out value="${vs.current} "/><br>
	</c:forEach>
	<!-- 必须要items -->
	<c:forTokens items="123-456-789" delims="-" varStatus="vs">
		<c:out value="${vs.current} "/><br>
	</c:forTokens >
	
	<h3>8.fmt格式化日期或数字</h3>
	<%
		Date d = new Date();
		pageContext.setAttribute("d", d);
	%>
	<%-- <c:set var="d" value="${d}"/> 不行,不能访问d--%>
	<c:out value="${d}" default="null"/><br>
	<f:formatDate value="${d}" pattern="yyyy-MM-dd HH-mm-ss"/><br>
	
	<f:formatNumber value="1.4" pattern="0.00"/><br>
	<f:formatNumber value="1.4" pattern="##.##"/>
	<!-- 0.00不足位会自动补0,#不足直接没有了 -->
	<h3>9.catch捕获异常</h3>
	<c:catch var="error">
	<%
		String eFormat="isString"
		int i = Integer.parseInt(eFormat);
	%>
	</c:catch>
	${error}
	<!--捕获的异常,存入变量error-->
	<h3>10.url</h3>
	<c:url value="http://www.cuit.edu.cn" var="url" scope="session">
	</c:url>
	<a href="${url}">成都信息工程大学首页</a>
	其实和
	<c:set value="http://www.cuit.edu.cn" var="url2" scope="session">
	</c:set>
	<a href="${url2}">成都信息工程大学首页</a>
	一样
</body>
</html>

在这里插入图片描述

学习的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I Am Rex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值