JSTL的使用
JSTL使用步骤
1、在jsp页面使用taglib指令引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2、导入jstl相关的jar包
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>
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>
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>
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}
</c:forEach>
第二种:
<%
String[] fruits = { "apple", "orange", "grape", "banana" };
%>
String数组中的元素:
<br />
<c:forEach var="name" items="<%=fruits%>">
${name}<br />
</c:forEach>
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>
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>
可以从运行结果看出传递了参数