JSTL学习笔记2---流程控制标签

简介: 1、  标签的使用  标签跟我们java中的if类似 ,只是表现方法不一样而已 。结构如下  :test 代表判断表达式var的结果是true还是false  ,结果存于result中 注意的一点是 我们在jstl中要引用属性的时候 都要将属性名字放到"${}"中  。

1、  <c:if>标签的使用 

标签跟我们java中的if类似 ,只是表现方法不一样而已 。结构如下  :test 代表判断表达式var的结果是true还是false  ,结果存于result中

注意的一点是 我们在jstl中要引用属性的时候 都要将属性名字放到"${}"中  。

<c:if   test="${var}"  var="result" scope="范围"/>    不带body的

<c:if  test="${var}"  var="result" scope="范围">

..........内部可以使jstl标签  也可以是html  也可以是文本  ,如果test=true那么 就会输出这一部分

</body>

在jsp中的使用如下:

<c:if test="${3>4}" var="result">
3>4  <br>
</c:if>
<c:out value="${result}"    default="null"   escapeXml="true" />

2、<c:choose>

       <c:when   test="${表达式}">

       </c:when>

       <c:otherwise>

       </c:otherwise>

    </c:choose>  

  标签类似switch语句    

代码如下 :

<c:choose >
    <c:when test="${1>3}">
    1>3 <br>
    </c:when>
    <c:when test="${2==21}">
    2==2 <br>
    </c:when>
    <c:when test="${3>11}">
    3>1<br>
    </c:when>
    <c:otherwise>
    默认输出!<br>
    </c:otherwise>
</c:choose>   

3、<c:forEach   var=""   items="${}"  varstaus=""  [ begin=""  step=""  end=""]> 

     </c:forEach> 

    标签可以迭代 实现java.util.Collection接口的类  也可以迭代  实现了  java.util.Map的类  .j

   也可以迭代数组,对于数组迭代的时候 ,比如 int型数组 的每个成员会被转换成 Integer   类型   。

要注意的一点是 我们要迭代的对象必须是设置setAttribute设置的属性 。

   <%
   String [] strs={"11","22","33","44","55","66","77","88","99","00"} ;
request.setAttribute("strs", strs) ;  
   Collection col=new ArrayList(10);
   for(int i=0;i<10;i++)
    col.add(i) ;
   request.setAttribute("col", col) ;  
 
   Map<Integer,Object> map=new  HashMap<Integer,Object>() ; 
   map.put(10, 22);
   map.put(18, 62);
   map.put(85,55);
   request.setAttribute("map",map) ;
   Collection c=map.entrySet() ;
   for(Object a:c)
   {
     ((Map.Entry)a).getKey();
   } 
  
%>

<c:forEach items="${map}" var="str" varStatus="status">
<c:out value="${str.key}"></c:out> 
<c:out value="${status.index}"/>
<c:out value="${status.count}"></c:out><br>
</c:forEach>

4、  利用 <c:forTokens items="${info}" delims="|"   varStatus="stat"  var="str"> 

                </c:forTokens> 

  标签循环提取以  delims分割的字符串,每个子字符串保存在str中 。    

  varStatus 依然有四个状态   index    当前索引    count  当前字串次数      first  是否是第一个字符串       last 是否是最后一个字符串

<%

String info="a|b|c|d";

request.setAttribute("info",info);

%>

<c:forTokens items="${info}" delims="|" varStatus="stat"  var="str">
<c:out value="${str}" ></c:out>
<c:out value="${stat.index}"></c:out>
<c:out value="${stat.count}"></c:out>
<c:if test="${stat.first}">这是第一个字符串</c:if>
<c:if test="${stat.last}">这是组后一个字符串</c:if>
</c:forTokens>

目录
相关文章
|
人工智能 算法 安全
人工智能伦理与监管:构建负责任的AI未来
【10月更文挑战第3天】随着人工智能(AI)技术的快速发展,其在社会各领域的应用日益广泛。然而,AI的广泛应用也带来了一系列伦理和监管挑战。本文旨在探讨AI的伦理问题,分析现有的监管框架,并提出构建负责任AI未来的建议。同时,本文将提供代码示例,展示如何在实践中应用这些原则。
1856 1
|
机器学习/深度学习 算法
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
|
自然语言处理 API 语音技术
NLP之ASR:基于pyaudio利用python进行语音生成、语音识别总结及其案例详细攻略
NLP之ASR:基于pyaudio利用python进行语音生成、语音识别总结及其案例详细攻略
|
Python 计算机视觉
Python+OpenCV教程基础篇:图像混合
如果你也有想分享的干货,可以登录天池实验室(notebook),包括赛题的理解、数据分析及可视化、算法模型的分析以及一些核心的思路等内容。
1721 0
|
存储 安全 中间件
透明计算:对当前主流计算模式的革命
本文讲的是透明计算:对当前主流计算模式的革命【IT168 资讯】自 20 世纪40年代计算机技术诞生以来,计算机技术经历了由大型机向台式机的转变,之后又进一步向各种移动设备和家电设备转变。目前,计算机技术正在向无处不在的计算,即普适计算阶段转变。
1623 0
|
XML 测试技术 数据格式
手把手教你接口自动化测试 – SoapUI & Groovy
原文:手把手教你接口自动化测试 – SoapUI & Groovy 手把手教你接口自动化测试 – SoapUI & Groovy   关键词:SoapUI接口测试,接口自动化测试,数据驱动测试,SoapUI进阶使用, Groovy in SoapUI, SoapUI中Groovy的使用,数据分离。
1320 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~