JSTL标签库(一)

一.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>

--%>

你可能感兴趣的:(jstl标签)