JSTL全称:JavaServer Pages Standard Tag Library
JSTL标签分为四大类:标准标签;国际化I18N标签;SQL标签;XML标签。
<!--JSTL中的类库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:out value="${data}" default="没有数据" escapeXml="true"/><br>
注:escapeXml="true" 则将文本按照普通文件显示。False:如果文本中存在HTML数据,则进行解析。
<c:set var=“name“ value=“zhangsan“ scope=“page”/> (相当于:
pageContext.setAttribute(“name”,”zhangsan”))
将值zhangsan存储到变量name, name为作用域pageContext中的一个属性。
<c:set target="${u}" property="pwd" value="123" ></c:set>
设置已有的EL变量u的属性pwd的值为123
<c:remove var="sampleValue" scope="session"/> 相当于:session.removeAttribute("sampleValue")
<c:if test="${1==1}" var="result" scope="page">
1是等于1的<br>
</c:if>
判断结果<c:out value="${result}"/>
<c:choose>
<c:when test="${param.name == 'Luck'}">
HI Luck!
</c:when>
<c:when test="${param.name == 'Andy'}">
HI Andy
</c:when>
<c:otherwise>
不认识
</c:otherwise>
</c:choose>
<%
List list = new ArrayList();
for(int i=0;i<20;i++){
list.add("A:"+i);
}
pageContext.setAttribute("li",list);
%>
<c:forEach items="${li}" var="a" begin="5" end="13" step="3" varStatus="idx">
<b>${a}</b>
<c:if test="${(idx.index+1)%5= =0}">
<br>
</c:if>
</c:forEach>
<c:forTokens>和<c:forEach>功能类似,也是迭代,差别在于items属性只能存放String类型
<%
String str="A,B*C,D;E;F1ABC";
pageContext.setAttribute("str",str);
%>
<body>
<c:forTokens items="${str}" delims=",*;1" var="s">
${s}<br>
</c:forTokens>
</body>
<c:import>类似<jsp:include>,差别在于<jsp:include>只可以包含属于同一个web应用的文件和资源,而<c:import>可以包含其他网站的文件和资源
<body>
<c:import url="http://www.163.com" charEncoding="GBK" scope="page" var="register"/>
输出结果<br>
${register}
</body>
JSTL标签分四种,其中标准标签是最常用的
标准标签可以完成以前需要使用Java代码完成的常见但复杂的操作,比如判断,遍历,循环等等
Jsp中的跳转总结:
重定向(地址栏改变):
response.sendRedirect(“02.jsp”);
<c:redirect url="02.jsp"></c:redirect>
response.setHeader(“refresh”,”3;URL=02.jsp”);
请求转发(地址栏不变):
request.getRequestDispatcher("02.jsp").forward(request, response);
<jsp:forward page="02.jsp"/>