JSTL标签库(一)

来源:互联网 发布:淘宝差评什么时候消失 编辑:程序博客网 时间:2024/05/19 20:38
 

 

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

 --%>