JSTL的使用

JSTL使用步骤

1、在jsp页面使用taglib指令引入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

2、导入jstl相关的jar包
JSTL的使用

JSTL中的Core标签

一、<c:out>标签
二、<c:if>标签
三、<c:choose>标签
四、<c:forEach>标签
五、<c:param>和<c:url>标签

1、 <c:out> 标签:向网页输出内容
①基本语法
第一种:<c:out value=“EL表达式获取值“ default=“值“ escapeXml=“true或者false”></c:out>
第二种:<c:out value=“EL表达式获取值” escapeXml=“true或者false”>默认值</c:out>

default:如果value属性获取到了值,就输出这个值,如果没有获取到,就输出default属性对应的值。
escapeXml:默认值为true,如果值为true,就会把html标记当成普通的字符串输出,如果值为false,就会正常解析html标记,正常输出。
②例子

<c:out value="${param.username}" escapeXml="true">unknown</c:out>

JSTL的使用

JSTL的使用
2、<c:if> 标签:进行条件判断,和java类中的if很相似
①基本语法
<c:if test="条件表达式“var=“变量名称”scope=“域的范围”>标签体内容</c:if>

test:如果返回值为true,就输出标签体内容,否则就不输出。
②例子

<%--相当于request.setAttribute("key",1)--%>
<c:set var="key" value="1" scope="request" property="he"></c:set>
<c:if test="${ key==1 }">hello</c:if>

JSTL的使用
3、<c:choose> 标签:进行条件判断,和java类中的if,else if(),else if()—else很相似
①基本语法
<c:choose>
<c:when test=“条件表达式”>标签体内容</c:when>
<c::when test=“条件表达式”>标签体内容</c:when>
<c:otherwise>标签体内容</c:otherwise>
</c:choose>

②例子

<c:choose>
   <c:when test="${empty param.username}">
		   unKnown user.
	   </c:when>
   <c:when test="${param.username=='itcast'}">
		   ${ param.username} is manager.
	   </c:when>
   <c:otherwise>
 		   ${ param.username} is employee.
   </c:otherwise>
</c:choose>

JSTL的使用
4、<c:forEach> 标签:遍历域对象中的数组和集合,和java类中的for循环很相似
①基本语法
第一种:<c:forEach var=“元素” items=“数组或者集合中的值” begin=“下标“ end=“结束的下标” step=“遍历的增量"></c:forEach>
第二种:<c:forEach var=“元素” items=“数组或者集合中的值”></c:forEach>

varStatus:count表示序号,index表示索引(下标),first判断是否是第一个元素,last判断是否是最后一个元素
②例子
第一种:

 	<%
		List colorsList=new ArrayList();
		colorsList.add("red");
		colorsList.add("yellow");
		colorsList.add("blue");
		colorsList.add("green");
		colorsList.add("black");
 	%>
	   	<c:forEach var="color" items="<%=colorsList%>" begin="1" end="3" step="2">
	   		${color}&nbsp;
	   	</c:forEach>

JSTL的使用
第二种:

	<%
		String[] fruits = { "apple", "orange", "grape", "banana" };
	%>
	String数组中的元素:
	<br />
	<c:forEach var="name" items="<%=fruits%>">
 		${name}<br />
	</c:forEach>

JSTL的使用
varStatus属性:

	<%
		List userList = new ArrayList();
		userList.add("Tom");
		userList.add("Make");
		userList.add("Lina");
	%>
	<table border="1">
		<tr>
			<td>序号</td>
			<td>索引</td>
			<td>是否为第一个元素</td>
			<td>是否为最后一个元素</td>
			<td>元素的值</td>
		</tr>
		<c:forEach var="name" items="<%=userList%>" varStatus="status">
			<tr>
				<td>${status.count}</td>
				<td>${status.index}</td>
				<td>${status.first}</td>
				<td>${status.last}</td>
				<td>${name}</td>
			</tr>
		</c:forEach>
	</table>

JSTL的使用
5、<c:param> 标签和 <c:url> 标签 :设置路径和传递参数。
①基本语法
<c:url var=“变量名称” url=“路径值”>
<c:param name=“属性名称” value=“属性值"></c:param>
</c:url>

②例子

<c:url var="myURL" value="register.jsp">
	<c:param name="username" value="张三" />
	<c:param name="country" value="中国" />
</c:url>
<a href="${myURL}">register</a>

JSTL的使用
JSTL的使用
可以从运行结果看出传递了参数