EL&JSTL(2)——JSTL

概述

JSTL需要使用taglibs-standard-impl.jar和taglibs-standard-spec.jar包。

不过我这里使用的开发环境是IDEA,使用JSTL标签会自动导入相关引用。

如:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

核心标签库

通用标签

<c:out>标签

功能:用来显示数据的内容,与<%=表达式%>或${表达式}类似。

语法:

<c:out value="输出的数据" default="defaultValue"] />
其中value值可以是EL表达式也可以是字符串,default是可选属性,表单当value值不存在时输出defaultValue。

示例:

<c:out value="这是一个字符串" default="没有数据" />

<c:set>标签

功能一:设置作用域变量;

语法:

<c: set value="value" var="varName" [scope="page|request|session|application"] />
scope是一个可选属性,表示在哪一个范围内设置变量;
var表示变量的名称;
value表示变量的值。

示例:

<c:set value="张三" var="username" scope="session"/>

相当于

<% session.setAttribute("username","张三"); %>

功能二:设置JavaBean的属性。

语法:

<c:set value="value" target="target" property="propertyName" />

将value值赋给target对象(JavaBean对象)的propertyName属性。

如果target为null或没有set方法则抛出异常。

<c:remover>标签

功能:删除某个变量。

语法:

<c:remove var="变量名" scope"page|reequest|session|application" />

示例:

<c:remove var="username" scope="session" />

相当于

<% session.removeAttribute("username") %>

流程控制标签

<c:if>标签

功能:实现if语句的作用,条件判断。

语法:

<c:if test="条件表达式">
    条件成立执行的内容
</c:if>

条件表达式可以是EL表达式也可以是JSP表达式。

如果表达式的值为true,则会执行主体内容,没有对应的<c:else>标签,因此如果如果条件不成立则需要使用<c:choose>、<c:when>及<c:other>标签。

示例:

    <c:if test="${3>2}">
        ${true}
    </c:if>

<c:choose>、<c:when>及<c:otherwise>标签

功能:<c:choose>、<c:when>及<c:otherwise>标签实现if/elseif/else语句的作用

语法:

    <c:choose>
        <c:when test="条件表达式1">
            主体内容1
        </c:when>
        <c:when test="条件表达式2">
            主体内容2
        </c:when>
        <c:otherwise>
            表达式都不成立时执行的主体内容
        </c:otherwise>
    </c:choose>

示例:

    <c:choose>
        <c:when test="${3>2}">
            3大于2
        </c:when>
        <c:otherwise>
            3不大于2
        </c:otherwise>
    </c:choose>

迭代标签

<c:forEach>标签

功能:实现for循环。

语法:

    <c:forEach var="变量名" items="数组|Collection对象">
        循环体
    </c:forEach>

items属性可以是数组也可以是集合对象,每次循环读取其中的一个元素,并赋值给var属性指定的变量,然后就可以在循环体中使用var指定的变量获取对象的元素。

示例:

    <%
        String[] users={"张三","李四","王五"};
    %>
    <c:forEach var="user" items="<%=users%>">
        ${user}
    </c:forEach>

在有些情况下需要为<c:forEach>标签指定begin、end、step和varStatus属性。

  • begin:为迭代时的开始位置,默认值为0;
  • end:为迭代时的结束位置,默认值是最后一个元素;
  • step:为迭代步长,默认值为1;
  • varStatus:为迭代变量的状态,包括count(迭代的次数)、index(当前迭代的索引,第一个索引为0)、first(是否为第一个迭代对象)和last(是否为最后一个迭代对象)。

<c:forTokens>标签

功能:用于迭代字符串中由分隔符分隔的各成员。

语法:

    <c:forTokens items="要迭代的字符串对象"  delims="指定分隔字符串的分隔符" var="变量名">
        循环体
    </c:forTokens>

也有begin、end、step和varStatus属性,用法相同。

示例:

    <c:forTokens items="A,B,C,D,E,F"  delims="," var="str">
        ${str}<br>
    </c:forTokens>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值