IT兄弟连 JavaWeb教程 JSTL常用标签

IT兄弟连 JavaWeb教程 JSTL常用标签

1.条件标签

条件标签能够实现Java语言中的if语句以及if-else语句的功能,它包括以下几种:

<c:if>:用于实现Java语言中的if语句的功能。

<c:choose>、<c:when>、<c:otherwise>:用于实现Java语言中if-else语句的功能。

(1)<c:if>标签

<c:if>标签用于实现Java语言中的if语句的功能,它的语法为:

<c:if test=”逻辑表达式” var=”代表逻辑表达式的值的命名变量的名字”

      scope= “{page|request|session|application}” />

</c:if>

<c:if>标签会把逻辑表达式的值存放在var属性指定的命名变量中,scope属性则指定命名变量的范围,scope属性的默认值是page。

例如以下<c:if>标签先判断username请求参数的值是否为Tom,然后把判断结果作为result命名变量存放在请求范围内:

<c:if test=”${param.username==’Tom’}”

       var = “result” scope=”request” />

${result}

</c:if>

以上<c:if>标签等价于以下Java程序片段:

<%

    String username = request.getParamaeter(“username”);

    if(username!=null &&”Tom”.equals(username)){

          request.setAttribute(“result”,true);

    }else{

          reuqest.setAttribute(“result”,false);

    }

%>

<c:if>标签还可以包含标签主体,只有当逻辑表达式的值为true时,才会执行标签主体。例如:

<c:if test=${param.save==’user’}” >

     Saving user

     <c:set var=”user” value=”Tom” />

</c:if>

以上<c:if>标签等价于以下Java程序片段:

<%

     String save=request.getParameter(“save”);

     if(save!=null && “user”.equals(save)){

           out.print(“Saving user”);

           pageContext.setAttribute(“user”,”Tom”);

     }

%>

 

(2)<c:choose>、<c:when>、<c:otherwise>标签

<c:choose>、<c:when>、<c:otherwise>标签在一起连用,可以实现Java语言中的if-else语句的功能。例如如下代码根据username请求参数的值来打印不同的结果:

<c:choose>

     <c:when test=”${empty param.username}”>

          UnKnown user;

     </c:when>

     <c:when test=”${param.username==’Tom’}”>

          ${param.username} is manager.

     </c:when>

     <c:otherwise>

          ${param.username} is employee.

     </c:otherwise>

</c:choose>

以上标签等价于以下Java程序片段:

<%

     String username=request.getParameter(“username”);

     if(username==null){

           out.print(“UnKnown user.”);

     }else{

           out.print(username + “is manager.”);

     }else{

           out.print(username + “is employee.”);

     }

%>

<c:choose>、<c:when>、<c:otherwise>标签的使用必须符合以下语法规则:

<c:when>和<c:otherwise>不能单独使用,它们必须位于<c:choose>父标签中。

在<c:choose>标签中可以包含一个或多个<c:when>标签。

在<c:choose>标签中可以不包含<c:otherwise>标签。

在<c:choose>标签中如果同时包含<c:when>和<c:otherwise>标签,那么<c:otherwise>必须位于<c:when>标签之后。

 

2.<c:forEach>标签

(1)<c:forEach>标签的基本语法为:

<c:forEach var=”代表集合中的一个元素的命名变量的名字” items=”集合”>

标签主体

</c:forEach>

<c:forEach>标签每次从集合中取出一个元素,并且把它存放在NESTED范围内的命名变量中,在标签主体中可以访问这个命名变量。NESTED范围是指当前标签主体构成的范围,只有当前标签主体才能够访问NESTED范围内的命名变量。

例如以下代码先创建了一个names集合,然后通过<c:forEach>标签遍历这个集合,并打印集合中的所有元素。

<%@ page import=”java.util.HashSet” %>

<%

     HashSet names = new HashSet();

     names.add(“Tom”);

     names.add(“Mike”);

     names.add(“Linda”);

%>

<c:forEach var=”name” items=”<%=names %>”>

     ${name} &nbsp;

</c:forEach>

运行以上代码,得到的打印结果为”Tom Mike Linda”。以上<c:forEach>标签等价于以下的Java程序片段:

<%@ page import=”java.util.HashSet” %>

<%

     for(String name : names){

         pageContext.setAttribute(“name”,name);

         name =(String)pageContext.getAttribute(“name”);

         out.print(name + ” “);

         pageContext.removeAttribute(“name”);

     }

%>

(2)<c:forEach>标签的varStatus属性

<c:forEach>标签的varStatus属性用于设定一个javax.servlet.jsp.jstl.core.Loop TagStatus类型的命名变量,它位于NESTED范围,这个命名变量包含了从集合中取出的当前元素的状态信息。

count:当前元素在集合中的序号,从1开始计数。

index:当前元素在集合中的索引,从0开始计数。

first:当前元素是否是集合中的第一个元素。

last:当前元素是否是集合中的最后一个元素。

(3)<c:forEach>标签的begin、end和step属性

<c:forEach>标签的begin、end和step属性分别指定循环的起始索引、结束索引和步长。

(4)<c:forEach>标签可以遍历的集合

<c:forEach>标签可以遍历的集合包括:

1)java.util.Set、java.util.List、java.util.Map、java.util.Iterator和java.util.Enumeration接口的实现类。

2)Java数组

3)以逗号分隔的字符串。

 

3.<c:forTokens>标签

<c:forTokens>标签用于遍历字符串中用特定分隔符分隔的子字符串,并且能重复执行标签主体。<c:forTokens>标签的基本语法如下:

<c:forTokens var=”代表字符串的命名变量的名字”

     items=”被分隔的字符串” delims=”分隔符”>

标签主体

</c:forTokens>

在<c:forTokens>标签中也可以使用varStatus、begin、end和step属性。

转载于:https://www.cnblogs.com/itxdl/p/10854808.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100926.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C语言正则表达式

    C语言正则表达式POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例如验证用户输入的IP地址或email地址格式是否正确。C语言处理正则表达式常用的函数有…

  • 设置Windows7下VMware虚拟机上网[通俗易懂]

    设置Windows7下VMware虚拟机上网[通俗易懂]设置Windows7下VMware虚拟机上网升级到WIN7后,发现VMware无法通过NAT方式上网了,很多网友都遇到这样的问题,而且一直没有找到好的解决办法。其实只要通过HOST-ONLY方式就可以上网。  步骤/方法上网方式设成HOST-ONLY(如图1)。主机物理网卡设置共享(如图2)家庭

  • Windows下nmap命令及Zenmap工具的使用方法「建议收藏」

    Windows下nmap命令及Zenmap工具的使用方法「建议收藏」#Nmap简介nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。正如大多数被用于网络安全的工具,nmap也是不少黑客爱用的工具。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。Nmap常被跟评估系统漏洞软件Nessus混为一谈。Nmap

  • phpstudy本地搭建域名访问

    phpstudy本地搭建域名访问

  • C++字符串加密_c++字符串连接函数

    C++字符串加密_c++字符串连接函数有的时候,使用C++进行爬虫操作时,会涉及到一些请求参数的加密,例如对utf8的中文进行加密,我们用js对如下字符串进行加密的结果如下:加密前字符串:keras-lx-还魂草.z01URL加密后:keras-lx-%E8%BF%98%E9%AD%82%E8%8D%89.z01使用网页在线加密工具和使用js加密效果是一样的自己用C++写的URL加密代码如下://URL编码.cpp:…

    2022年10月28日
  • PLSQL_查询SQL的执行次数和频率(案例)

    PLSQL_查询SQL的执行次数和频率(案例)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号