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://blog.51cto.com/14311187/2393372

时间: 2024-09-29 08:53:55

IT兄弟连 JavaWeb教程 JSTL常用标签的相关文章

JSTL常用标签大全

1.下载jstl标签库 2.在相目\WEB-INF\lib\文件夹中放入标签库的两个jar文件:javax.servlet.jsp.jstl-1.2.1.jar 和 javax.servlet.jsp.jstl-api-1.2.1.jar 3.在jsp文件的顶部加入以下内容:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    <c:> 核心标签库  =====

IT兄弟连 JavaWeb教程 EL与JSTL表达式经典案例

案例需求:使用MVC模式编写一个程序,当发起一个deptList.do请求时,在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中转发到deptlist.jsp,使用JSTL+EL的语法来显示这个部门列表.部门类型是XdlDept成员变量有int id.String name.String loc. 案例实现: ●  XdlDept类: package com.xdl.bean; import java.io.Serializable; public class Xd

JSTL常用标签库介绍

最近在开发中经常使用JSTL标签,感觉还是蛮好用的,这里介绍几个比较常用的JSTL标签,供大家参考,也是对自己知识的复习与回顾吧! 第一个就是流程控制标签里面的if,用的是非常多.具体写法: <c:if test="条件">执行语句</c:if> 比如条件1成立,就显示一个按钮,条件2成立就显示一个超链接: <c:if test="条件1"> <input id="submit_btn" class=&q

IT兄弟连 JavaWeb教程 JSP中的三大指令

指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不接见的.JSP页面的指令标识与我们的身份证类似,虽然公民身份证可以标识公民身份的,但是它并没有对所有见到过我们的人都公开. JSP指令语法 JSP指定标识的语法格式如下: <%@ 指令名 属性1="属性值1" 属性2="属性值2" ...%> 参数说明: 指令名:用于指定指令名称,在JSP中包含page.

IT兄弟连 JavaWeb教程 El基本语法

EL(Expression Language)表达式语言是在JSP 2.0版本中引入的新特性,它用于JSP文件中的数据访问.这种表达式语言能简化JSP文件中数据访问的代码,可用来替代传统的基于"<%="和"%>"形式的Java表达式,以及部分基于"<%"和"%>"形式的Java程序片段. 自定义JSP标签是用来代替JSP中的Java程序片段的有效途径.大多数Web应用的JSP文件常常要实现一些通用的功能

jstl常用标签整理&lt;c:out&gt;&lt;c:fortoken&gt;,基本表达式ne,el

<c:url value="http://baidu.com" var="url" scope="session"/> <c:url>标记具有以下属性: Attribute Description Required Default value 根URL Yes None context /后面的本地Web应用程序的名称 No Current application var 变量的名称,暴露处理的URL No Print t

IT兄弟连 JavaWeb教程 JSON和JSON字符串

JSON (JavaScript Object Notation)是JavaScript语言中的一种对象类型.JSON的好处是易于阅读和解析.当客户端和服务器端需要交互大量数据时,使用JSON格式传输可以简化客户端和服务器端的编程. 1  JSON对象格式 ●  JSON对象格式如下: {"key":value,"key":value,...} 例如:{"name":"兄弟连IT教育","subject":

[Java] JSP笔记 - EL、JSTL 常用标签

一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法.它是一种简单的语言,基于可用的命名空间(PageContext 属性).嵌套属性和对集合.操作符(算术型.关系型和逻辑型)的访问符.映射到 Java 类中静态方法的可扩展函数以及一组隐式对象. 三.使用 EL 语言前的配置

IT兄弟连 JavaWeb教程 URI、URL

URI介绍 URI(Uniform Resource Identifier),是统一资源标识符的缩写,是一个用于标识某一个Web资源名称的字符串,该标识允许用户对任何资源通过特定的协议进行交互.Web上可用的每种资源,如:HTML.图像.视频和音乐等资源,都由一个统一资源标识符进行标识.URI一般由三部分组成: ● 访问资源的命名机制 ● 存放资源的主机名 ● 资源自身的名称,由路径标识,着重强调于资源 URL介绍 URL(Uniform Resource Locator),统一资源定位符的缩写