zoukankan      html  css  js  c++  java
  • JSTL详解3

    9.3.2 用于赋值的 <c:set> 标签
    <c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表9.4所示:
    表9.4 <c:set>标签属性和说明
    属性 描述
    value 值的信息,可以是EL表达式或常量
    target 被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)
    property JavaBean实例的变量属性名称(可选)
    var 被赋值的变量名(可选)
    scope 变量的作用范围,若没有指定,默认为page(可选)

    当不存在value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:
    <c:set value="this is andy" var="oneString"/>
    ${oneString} <br>
    该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
    9.3.3 用于删除的 <c:remove> 标签
    <c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表9.5所示:
    表9.5 <c:remove>标签属性和说明
    属性 描述
    var 需要被删除的变量名
    scope 变量的作用范围,若没有指定,默认为全部查找(可选)

    下面看一个示例:
    <c:remove var="sampleValue" scope="session"/>
    ${sessionScope.sampleValue} <br>
    该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。
    9.3.4 用于异常捕获的 <c:catch> 标签
    <c:catch>标签允许在JSP页面中捕捉异常。它包含一个var属性,是一个描述异常的变量,改变量可选。若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。看一个示例。
    <c:catch var="err">
             ${param.sampleSingleValue[9] == 3}
    </c:catch>
    ${err}
    当“${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。
    9.3.5 用于判断的 <c:if> 标签
    <c:if>标签用于简单的条件语句。它的属性和描述如表9.6所示:
    表9.6 <c:if>标签属性和说明
    属性 描述
    test 需要判断的条件
    var 保存判断结果true或false的变量名,该变量可供之后的工作使用(可选)
    scope 变量的作用范围,若没有指定,默认为保存于page范围中的变量(可选)

    下面看一个示例:
    <c:if test="${paramValues.sampleValue[2] == 12}" var="visits">
            It is 12
    </c:if><br>
    ${visits} <br>
    该示例将判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则显示“It is 12 ”。判断结果被保存在page范围中的“visits”变量中。  
    9.3.6 用于复杂判断的 <c:choose> 、 <c:when> 、 <c:otherwise> 标签
    这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。
    q         <c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
    q         <c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
    q         <c:otherwise>标签没有属性,它等价于“else”语句。
    下面看一个复杂条件语句的示例。
    <c:choose>
             <c:when test="${paramValues.sampleValue[2] == 11}">
                       not 12 not 13,it is 11
             </c:when>
             <c:when test="${paramValues.sampleValue[2] == 12}">
                       not 11 not 13,it is 12
             </c:when>
             <c:when test="${paramValues.sampleValue[2] == 13}">
                       not 11 not 12,it is 13
             </c:when>
             <c:otherwise>
                       not 11 、12、13
             </c:otherwise>
    </c:choose>
    该示例将判断request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12”或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11 、12、13”。
    9.3.7 用于循环的 <c:forEach> 标签
    <c:forEach>为循环控制标签。它的属性和描述如表9.7所示:
    表9.7 <c:forEach>标签属性和说明
    属性 描述
    items 进行循环的集合(可选)
    begin 开始条件(可选)
    end 结束条件(可选)
    step 循环的步长,默认为1(可选)
    var 做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选)
    varStatus 显示循环状态的变量(可选)

    下面看一个集合循环的示例。
    <%ArrayList arrayList = new ArrayList();
                       arrayList.add("aa");
                       arrayList.add("bb");
                       arrayList.add("cc");
    %>
    <%request.getSession().setAttribute("arrayList", arrayList);%>
    <c:forEach items="${sessionScope.arrayList}" var="arrayListI">
             ${arrayListI}
    </c:forEach>
    该示例将保存在Session中的名为“arrayList”的ArrayList类型集合参数中的对象依次读取出来,items属性指向了ArrayList类型集合参数,var属性定义了一个新的变量来接收集合中的对象。最后直接通过EL表达式显示在页面上。下面看一个简单循环的示例。
    <c:forEach var="i" begin="1" end="10" step="1">
          ${i}<br />
    </c:forEach>
    该示例从“1”循环到“10”,并将循环中变量“i”显示在页面上。
    9.3.8 用于分隔字符的 <c:forTokens> 标签
    <c:forTokens>标签可以根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer类。它的属性和描述如表9.8所示:
    表9.8 <c:forTokens>标签属性和说明
    属性 描述
    items 进行分隔的EL表达式或常量
    delims 分隔符
    begin 开始条件(可选)
    end 结束条件(可选)
    step 循环的步长,默认为1(可选)
    var 做循环的对象变量名(可选)
    varStatus 显示循环状态的变量(可选)

    下面看一个示例。
    <c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step="2" delims="," var="aValue">
             ${aValue}
    </c:forTokens>
    需要分隔的字符串为“aa,bb,cc,dd”,分隔符为“,”。begin属性指定从第一个“,”开始分隔,end属性指定分隔到第三个“,”,并将做循环的变量名指定为“aValue”。由于步长为“2”,使用EL表达式${aValue}只能显示“aa
  • 相关阅读:
    如何提高网站在Google的排名(2)
    Key Words in my 2006
    UML: 关系
    What's SOAP
    "你试图打开的项目是Web项目,请指定URL路径"问题及解决方法
    WinXP下装SQL2000企业版
    多表联合查询的问题。。。。。
    实习技术员的基本功(十一)
    实习技术员的基本功(五)
    实习技术员的基本功(六)
  • 原文地址:https://www.cnblogs.com/mycodelife/p/1439295.html
Copyright © 2011-2022 走看看