JSPGen软件开发框架第四版 开发手册
JSTL 核心标签库标签共有13个,功能上分为4类:
A、表达式控制标签:out、set、remove、catch
B、流程控制标签:if、choose、when、otherwise
C、循环标签:forEach、forTokens
D、URL操作标签:import、url、redirect
使用标签时,一定要在jsp文件头部加入以下代码:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
下面对几个比较常用标签进行举例说明:
1、<c:if>
【语法】<c:if test="条件" >条件成立则输出</c:if>
【示例】
<c:if test="${2>1}"> true </c:if>
<c:if test="${2<1}"> false </c:if>
2、<c:choose> <c:when> <c:otherwise>
三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次。
【示例】
<c:set var="score">85</c:set>
<c:choose>
<c:when test="${score>=90}">你的成绩为优秀!</c:when>
<c:when test="${score>=70 && score<90}">您的成绩为良好! </c:when>
<c:when test="${score>60 && score<70}">您的成绩为及格</c:when>
<c:otherwise> 对不起,您没有通过考试!</c:otherwise>
</c:choose>
3、<c:forEach>
【语法】<c:forEach var="name" items="Collection"
[varStatus="statusName"] [begin="begin"] [end="end"] [step="step"]>
</c:forEach>
该标签根据循环条件遍历集合 Collection 中的元素,中括号里参数为可选参数;
var 用于存储从集合中取出的元素;items 指定要遍历的集合;
varStatus 用于存放集合中元素的信息, varStatus 一共有4种状态属性。
【示例】
<%@ page contentType="text/html;charset=UTF-8" %>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h4>forEach实例</h4><hr>
<%
List a=new ArrayList();
a.add("贝贝"); a.add("晶晶"); a.add("欢欢"); a.add("莹莹"); a.add("妮妮");
request.setAttribute("a", a);
%>
<B>不指定begin和end的迭代:</B><br>
<c:forEach var="fuwa" items="${a}"> ${fuwa}<br></c:forEach>
<B>指定begin和end的迭代: </B><br>
<c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
${fuwa}<br>
</c:forEach>
<B>输出整个迭代的信息: </B><br>
<c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
${fuwa}的四种属性:<br>
所在位置,即索引: ${s.index}<br>
总共已迭代的次数: ${s.count}<br>
是否为第一个位置: ${s.first}<br>
是否为最后一个位置: ${s.last}<br>
</c:forEach>
显示效果:
4、<c:import>
与<jsp:include>的区别是后者只能包含同一个web应用中的文件
前者可以包含其他web应用中的文件,甚至是网络上的资源。
【语法】
<c:import url="url"
[context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]>
</c:import>
【示例】
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<h4>import实例</h4>
<h4>相对路径引用的实例,引用本应用中的文件</h4>
<c:import url="a1.txt" charEncoding=" UTF-8" /> <hr>
<h4>使用字符串输出、相对路径引用的实例,并保存在session范围内</h4>
<c:import var="myurl" url="a1.txt" scope="session" charEncoding="UTF-8">
</c:import>
${myurl}
注意:URL路径有个绝对路径和相对路径之分。
相对路径:<c:import url="a.txt"/>,a.txt必须与当前文件放在同一个文件目录下;
如果以"/"开头,表示存放在项目程序的根目录下: <c:import url="/b.txt">
如要访问同一个Tomcat容器下的其他项目,就要用context属性。
访问demo2下的index.jsp,则:<c:import url="/index.jsp" context="/demo2" />