Jstl表达式out、set、if、choose、forEach

来源:互联网 发布:手机淘宝怎么解除验证 编辑:程序博客网 时间:2024/05/29 17:33

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL 库安装
Apache Tomcat安装JSTL 库步骤如下:
从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。
官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

下载jakarta-taglibs-standard-1.1.2.zip 包并解压,将jakarta-taglibs-standard-1.1.2/lib/下的两个jar文件:standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下。

这里写图片描述


核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out>  用于在JSP中显示数据,就像<%= ... ><c:set>  用于保存数据<c:remove>   用于删除数据<c:catch>    用来处理产生错误的异常状况,并且将错误信息储存起来<c:if>   与我们在一般程序中用的if一样<c:choose>   本身只当做<c:when>和<c:otherwise>的父标签<c:when>     <c:choose>的子标签,用来判断条件是否成立<c:otherwise>    <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行<c:import>   检索一个绝对或相对 URL,然后将其内容暴露给页面<c:forEach>  基础迭代标签,接受多种集合类型<c:forTokens>    根据指定的分隔符来分隔内容并迭代输出<c:param>    用来给包含或重定向的页面传递参数<c:redirect>     重定向至一个新的URL.<c:url>  使用可选的查询参数来创造一个URL

Customer

package com.safly;public class Customer {    private int id;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public Customer() {        super();    }}


我们来看看c:out、c:set的简单用法吧:

c:out语法格式

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>
属性  描述  是否必要    默认值value    要输出的内容  是   无default  输出的默认值  否   主体中的内容escapeXml    是否忽略XML特殊字符     否   true

c:set语法格式

<c:set   var="<string>"   value="<string>"   target="<string>"   property="<string>"   scope="<string>"/>
属性  描述  是否必要    默认值value    要存储的值   否   主体的内容target   要修改的属性所属的对象     否   无property     要修改的属性  否   无var  存储信息的变量     否   无scope    var属性的作用域   否   Page


实例代码如下:

    <%        request.setAttribute("book", "java");    %>    book:    <c:out value="${requestScope.book}"></c:out>    <c:set var="name" value="safly" scope="page"></c:set>    <!--  等价于下面一行代码,为域对象赋值 -->    <%        pageContext.setAttribute("name", "safly");    %>    name:${pageScope.name }    <%        Customer cust = new Customer();        cust.setId(101);        request.setAttribute("cust", cust);    %>    ID:${requestScope.cust.id }    <c:set target="${requestScope.cust}" property="id" value="${param.id}"></c:set>    ID:${requestScope.cust.id }

浏览器输入http://localhost:8080/day01/mytag.jsp?id=234
页面输出结果如下

book: java name:safly ID:101 ID:234 


我们来看看c:if、c:choose标签的简单用法吧:
c:choose语法格式

<c:choose>    <c:when test="<boolean>"/>        ...    </c:when>    <c:when test="<boolean>"/>        ...    </c:when>    ...    ...    <c:otherwise>        ...    </c:otherwise></c:choose>
<c:choose>标签没有属性。<c:when>标签只有一个属性,在下表中有给出。<c:otherwise>标签没有属性。

c:if语法格式

<c:if test="<boolean>" var="<string>" scope="<string>">   ...</c:if>
属性       描述 是否必要    默认值test     条件  是   无var  用于存储条件结果的变量     否   无scope    var属性的作用域   否   page

实例代码如下:

   <c:set value="20" var="age" scope="request"></c:set>   <c:if test="${requestScope.age > 18}">成年了</c:if>   <c:if test="${param.age > 18}" var="isAdult" scope="request"></c:if>   isAdult:<c:out value="${requestScope.isAdult}"></c:out><br>   <c:choose>    <c:when test="${param.age > 60}">老年</c:when>    <c:when test="${param.age > 40}">中年</c:when>    <c:otherwise>青年</c:otherwise>   </c:choose>

浏览器输入
http://localhost:8080/day01/mytag.jsp?age=45

输出结果如下:

成年了 isAdult:true中年 


我们来看看c:forEach标签的简单用法吧:
c:forEach语法格式

<c:forEach    items="<object>"    begin="<int>"    end="<int>"    step="<int>"    var="<string>"    varStatus="<string>">    ...
属性             描述                             是否必要   默认值items       要被循环的信息                            否     无begin       开始的元素(0=第一个元素,1=第二个元素)      否    0end         最后一个元素(0=第一个元素,1=第二个元素)    否     Last elementstep        每一次迭代的步长                           否     1var         代表当前条目的变量名称                    否     无varStatus   代表循环状态的变量名称                    否     无
 <%    List<Customer> custs = new ArrayList<Customer>();    custs.add(new Customer(1,"AA"));    custs.add(new Customer(2,"BB"));    custs.add(new Customer(3,"CC"));    custs.add(new Customer(4,"DD"));    custs.add(new Customer(5,"EE"));    custs.add(new Customer(6,"FF"));    request.setAttribute("custs",custs);    %>    <c:forEach items="${requestScope.custs}" var="safly" begin="1" step="2" end="5">        ${safly.id }:${safly.name }    </c:forEach><br>    <%        Map<String,Customer> custMap = new HashMap<String,Customer>();        custMap.put("a",new Customer(1,"AA"));        custMap.put("b",new Customer(2,"BB"));        custMap.put("c",new Customer(3,"CC"));        custMap.put("d",new Customer(4,"DD"));        custMap.put("e",new Customer(5,"EE"));        request.setAttribute("custMap",custMap);     %>     <c:forEach items="${requestScope.custMap}" var="safly">        ${safly.key }---${safly.value.id }--${safly.value.name }<br>     </c:forEach>     <%        String [] names = new String[]{"A","B","C"};        request.setAttribute("names",names);      %>      <c:forEach var="safly" items="${names}">        ${safly }      </c:forEach>

http://localhost:8080/day01/mytag.jsp、
输出结果如下:

2:BB 4:DD 6:FF d---4--DDe---5--EEb---2--BBc---3--CCa---1--AAA B C 
0 0
原创粉丝点击