一.Core标签库
• 核心标签库主要包括通用标签、条件标签、迭代标签和与URL相关的标签。
• 在使用Core标签库的JSP文件的开始部分,添加代码:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:out>标签
Value:要输出的值,可以是EL表达式或常量
Default:value值为空时所输出的值
EscapeXml为true时对输出的内容进行转义
<%
request.setAttribute("user","lisi");
%>
<c:out value="hello world"/><br/>
<c:out value="${userName}" default="xxxx"/>
<c:out value="<h1>你好!</h1>" escapeXml="false"/>
<c:out value="${userName}">
文本内容
</c:out>
二.<c:set>标签
1.将value的值保存到var中,同时保存到选定的作用域范围scope
中
2.将value的值保存到target中的porperty中
<c:set value="sunwkong" var="user" scope="request"/>
${user}
<c:set var="user" scope="request">
zhubajie
</c:set>
${user}
<%
Map map=new HashMap();
request.setAttribute("map",map);
%>
<c:set value="tangseng" property="aaa" target="${map}"></c:set>
${map.aaa}
<%
Person p=new Person();
request.setAttribute("person",p);
%>
<c:set value="Jerry" property="name" target="${person}"/>
${person.name}
三. <c:remove>标签
1. 标签用于移除JSP页面中指定域范围中的变量。
2. Default:当value值为空时调用默认值
<br/>-----------------------c:remove-----------------------<br/>
<c:remove scope="request" var="person" />
<c:out value="${person.name}" default="没有该人"/>
四.<c:catch>标签
1. 标签用于捕获嵌套在标签体内的内容抛出的异常对象,并将异常信息保存到变量中。
<br/>-----------------------c:catch-----------------------<br/>
<c:catch var="myex">
<%
int i=10/0;
%>
</c:catch>
异常:<c:out value="${myex}"></c:out><br/>
异常原因:<c:out value="${myex.cause}"/><br/>
异常消息:<c:out value="${myex.message}"/><br/>
异常堆栈轨迹:<c:out value="${myex.stackTrace}"/><br/>
五.<c:if>标签
1. 标签用来做条件判断,功能类似于JSP中的
<br/>-----------------------c:if-----------------------<br/>
<c:if test="${userName==null}" var="xx" scope="request">
该用户没有登录
</c:if>
${xx}
六.<c:choose>、<c:when>、<c:otherwise>标签
– <c:choose>标签用于提供条件选择的上下文,它必须与<c:when>和<c:otherwise>标签一起使用。
– <c:when>作为<c:choose>的子标签,<c:when>有一个test属性,该属性的值为布尔型,如果test的值为true,则执行<c:when>标签体的内容。
– <c:otherwise>标签没有属性,它必须作为<c:choose>标签的最后分支出现。
<br/>-----------------------c:choose-----------------------<br/>
<%
request.setAttribute("age",18);
%>
<c:choose>
<c:when test="${age>70}">
老年人
</c:when>
<c:when test="${age<=70 && age>35}">
中年人
</c:when>
<c:when test="${age<=35 && age>18}">
青年人
</c:when>
<c:when test="${age<=18 && age>0}">
少年或儿童
</c:when>
<c:otherwise>
输入错误
</c:otherwise>
</c:choose>
七<c:forEach>标签用于对包含了多个对象的集合进行迭代,重复执行它的标签体,或者重复迭代固定的次数。
注意:
Ø items属性并不是一定要有的属性,但是当没有使用items属性时,就一定要使用begin和end属性。
Ø varStatus:用来保存现有遍历计数相关的信息。例如,如果varStatus=“i”,那么会将相应信息放到名称为i的变量中,i变量有四个属性值,index、count、first和last。
<br/>-----------------------c:forEach-----------------------<br/>
<c:forEach begin="1" end="10" step="2">
hello word
</c:forEach>
<br/>
<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("add");
list.add("eee");
list.add("fff");
list.add("ggg");
list.add("hhh");
list.add("iii");
list.add("gyyy");
list.add("zzz");
request.setAttribute("list",list);
%>
<table border="1" width="50%">
<c:forEach items="${list}" var="str" varStatus="status">
<tr class="${(status.count%2!=0)?'even':'odd'}">
<td>${str}</td>
<td>${status.index}</td>
<td>${status.first}</td>
<td>${status.last}</td>
<td>${status.count}</td>
</tr>
</c:forEach>
</table>
八.<c:forTokens>标签
– <c:forTokens>标签用来浏览一字符串中所有的成员,其成员是由定义符号(Delimiters)所分隔的。
<c:forTokens items=“a:b:c:d” delims=“:” var=“token”>
<c:out value=“${token}” /> <br>
</c:forTokens>
<br/>-----------------------c:forToken-----------------------<br/>
<c:forTokens items="this:is:an:example" delims=":" var="token">
${token}
</c:forTokens>
九.<c:url>标签在JSP页面构造一个URL,它提供了3个功能元素,它们可以在URL前面附加当前Servlet上下文的名称;可以为会话管理重写URL;可以对请求参数名称和值进行URL编码,这些功能在为J2EE Web应用程序构造URL时特别有用。
<br/>-----------------------c:url-----------------------<br/>
<%session.setAttribute("xxxx","xxxxx"); %>
<c:url value="/index.jsp" var="strUrl" scope="request">
<c:param name="userName" value="王五"></c:param>
</c:url>
${strUrl}
<ahref="${strUrl}">首页</a>
<ahref="<c:urlvalue='/index.jsp'/>">首页</a>
十<c:import>标签:可以把其他静态或者动态文件包含到本身的JSP页面中。与JSP的动作<jsp:include>的区别在于:<jsp:include>只能包含和自己在同一个Web应用中的文件,<c:import>不仅能包含和自己在同一个Web应用下的文件,还可包含其他Web应用或其他网站的文件。
<br/>-----------------------c:import----------------------<br/>
<c:import url="/MyJsp.jsp" var="secondPage"/>
${secondPage}
• 十一<c:redirect>标签
<c:redirect>标签用于向用户的浏览器发送HTTP重定向响应,它是JSTL中与 javax.servlet.http.HttpServletResponse的sendRedirect()方法功能相当的标记
<br/>-----------------------c:redirect----------------------<br/>
<%--
<c:redirect url="/MyJsp.jsp"></c:redirect>
--%>