JSTL(二)--核心标签库

     在<JSTL()---简介>,我对JSTL进行了简单的介绍,今天就进行深入的学习一下,再次要介绍的就是关于JSTL的核心标签库,为什么叫做核心标签库呢,我对此的理解就是这些标签库使用的频率比较高.

.宏观把控

     做一件事情的时候,我们常常会说:先宏观把控好了,细节都不是问题了.那么我们就从宏观来看看JSTL的核心标签库,如下图所示:


看着这些单词,是不是有一种似曾相识的感觉呢.

.细节处理

温馨提示:

使用标签时,一定要在jsp文件头加入以下代码:<%@taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>

1.与表达式相关的核心标签库

  • <c:out>:输出表达式的结构,类似于alert().system.out.println();

格式:

<c:out  value="表达式"[escapeXml="true|false"] [default="默认值"]/>

  • <c:set>:设定指定范围内的一个变量和对象的值.类似于=,

格式1:

<c:set value="要设置的值"var="变量名" />

格式2:

<c:set  var="变量名">要设置的值 </c:set>

格式3:

<c:set  value="要设置的值" target="对象名称"  property="对象的属性名称"/>

格式4:

<c:set target="对象名称"  property="对象的属性名称">
  要设置的值
</c:set>

  • <c:remove> :删除某范围内的一个变量类似于remove,delete

格式:

<c:remove var="变量名"  />

 

例如:

<body>
<c:set  var="bookname"  value="《java  web 极限开发》"/>
变量bookname的值位:<c:out value="${bookname}"/><br/>
变量bookname的值位:<c:out value="${bookname}" escapeXml="false"/><br/>
<c:removevar="bookname"/>
变量bookname的值为:<c:outvalue="${bookname}"/><br/>
<c:catch  var="errorStr">
<%=3/0%>
<c:out value="这是输出的内容"/>
</c:catch>
捕获到异常:<c:out value="${errorStr }"/>
</body>

效果图:


2.流程控制核心标签

  • <c:if>:类似于java,C# 中的if判断语句

格式1:

<c:if test="条件表达式"  var="变量名"/>

格式2:

<c:if  test="条件表达式"> 表达式成立后执行的代码</c:if>

  • <c:choose>,<c:when>,<c:otherwise>:类似于java,C#中的switch语句.

格式:

<c: choose>
                <c:when test="条件表达式1">
                     条件表示成立后执行的语句.
               </c:when>
               <c:otherwise>
                    以上条件表达式都不成立后执行的语句
               </c:otherwise>
           </c:choose>

温馨提示: <c:when>标签和<c:otherwise>标签必须嵌套在<c:choose>标签中使用,且在同一个<c:choose>标签中的所有的<c:when>标签必须出现在<c:otherwise>标签之前.

3.迭代核心标签

  • <c:forEach>:要么通过集合对象来决定执行循环体中嵌套的语句的次数,要么执行固定的次数.

格式:

<c:forEachitems=”data” var=”name” begin=”start” end=”finsh” step=”step”varStatus=”statusName”>
          ......//标签主体
  </c:forEach><span style="font-family: Calibri; font-size: 14pt; "> </span>

  • <c:forTokens>:处理由某一符号分隔的字符串,从其中拆分出子字符串.

格式:

<c:forTokensitems=”String” delims=”char”>
.....//标签主体
</c:forTokens>

例如:

<body>
<%//-------------设置一个数组的初始值-----------
String  name[] =new String[4];
name[0]="阿涛";
name[1]="弯弯";
name[2]="东哥";
name[3]="西瓜";
request.setAttribute("name",name);
 %>
 -------------用forEach输出数组元素值及迭代过程中的相关属性---------------<br></br>
 
 <c:forEach items="${name}" var="currentName"  varStatus="currentVarStaus">
                 当前元素值为:<c:out value="${ currentName}"  /><br/>
                 当前元素索引号为:<c:out value="${currentVarStaus.index}"/><br/>
             当前共计迭代<c:outvalue="${currentVarStaus.count}"/>次;<br/>
                 <c:if  test="${currentVarStaus.first}">当前是第一次迭代操作</c:if><br/>
                 <c:iftest="${currentVarStaus.last }">当前是最后一次迭代操作</c:if><br/>
 </c:forEach>
 
 -------------------用forTokens分拆字符串------------------------<br />
 
 <%//---------------------设置一个字符串的初始值--------------
         String  namestr=new String("姓名=唐欢|年龄23岁|性别=女");
         request.setAttribute("nameStr",namestr);
         %>
         字符串为:<c:out value="${nameStr }"/><br/>
         <!--------用"|"作分隔符 -->
         用|作分隔符</br>
         <c:forTokensitems="${nameStr }" var="currentName" varStatus="currentVarStatus" delims="|">
                 当前元素值位:<c:out value="${currentName}"/>;<br/>
                 当前元素索引号为:<c:out  value="${currentVarStatus.index}"/><br/>
                 当前共计迭代<c:out value="${currentVarStatus.count}"/>次;<br/>
                 <c:if  test="${currentVarStatus.first}">当前是第一次迭代操作</c:if><br/>
                 <c:iftest="${currentVarStatus.last}">当前是最后一次迭代操作</c:if></br>
         </c:forTokens>
</body>

效果图:

 

4.URL相关的核心标签

  • <c:import>:将其它文件包含到当前jsp文件中,其它文件可以是动态文件也可以是静态文件.

格式:

<c:importurl=”url” [context=”context”] [var=”name”]>
    score=”[page | request | session |application]” [charEncoding=”encoding”]
    ......//标签主体
 </c:import>
<c:import  url=”url” [context=”context”]varReader=”name”
 [charEncoding=”encoding”]><span style="font-family: Calibri; font-size: 14pt; "> </span>

  • <c:url>:生成URL

格式:

<c:url value="生成的URL">.

 例如:

<body>
-----------------使用url标签生成一个URL-------------------------<br/>
<c:urlvalue="test.jsp" scope="page" var="testURL">
<c:param name="baidu"value="百度搜索"/>
</c:url>
生成的URL为:<c:outvalue="${testURL}"/>
</body>
效果图:


  • <c:redirect>:把客户端发来的请求重定向到另一个页面

格式1:

<c:redirecturl=”url” [context=”context”]>
        ......<c:param>  //在标签主体中使用<c:param>标签传递其他的参数信息
  </c:redirect>

格式2:

<c:redirecturl=”url” [context=”context”] />

.总结

     这些都是以前学过的内容,只不过在java,使用标签的形式呈现出来,更加体现了java的移植性.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值