日期:2014-05-16  浏览次数:20448 次

JSTL Core详解(二)
<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表所示:
value
输出到页面的数据,可以是EL表达式或常量(必须)

default
当value为null时显示的数据(可选)

escapeXml
当设置为true时会主动更换特殊字符,比如“&lt;,&gt;,&amp;”(可选,默认为true)


在JSTL1.0的时候,在页面显示数据必须使用<c:out>来进行。然而,在JSTL1.1中,由于JSP2.0规范已经默认支持了EL表达式,因此可以直接在JSP页面使用表达式。下面看一个示例。
<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>

该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。

<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表所示:
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。

用于删除的 <c:remove> 标签
      <c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表所示:

var
需要被删除的变量名

scope
变量的作用范围,若没有指定,默认为全部查找(可选)

下面看一个示例:
<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>

该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。

用于异常捕获的 <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来决定错误信息的提示。

用于判断的 <c:if> 标签
      <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”变量中。

用于复杂判断的 <c:choose> 、 <c:when> 、 <c:otherwise> 标签
     这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。


         <c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
         <c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
         <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