JSTL简化JSP编码(2)

2008-02-23 09:26:23来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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

你最常使用的JSTL操作之一是显示动态值。为了显示动态数据,核心库提供了c:out标记。c:out标记在一个页面中显示一个EL表达式的值。例如:

First name: <c:out value="${Employee.Ename}" />

c:out的值属性还可以包含文本和表达式的组合:

<c:out value="First name: ${Employee.Ename}" />

(注意:当JSP 2.0提供对EL的支持时,你无需再使用c:out操作,你可以直接在页面中嵌入JSP表达式。)

另一个操作是设置变量。为了在一个页面中设置变量,核心标记库提供了c:set标记。这个例子显示了将变量Ename设置为参数"enameparm"的值:

<c:set var="Ename" value="${param.

enameparm}" />

JSTL核心标记库还提供了用于处理条件的标记。c:if处理简单的条件测试。计算test属性中布尔表达式的值;如果是真,计算主体中的内容。在下面的操作中,你还可以看到存储测试结果以备以后在页面(或者在别的地方,如果指定了其他的可选范围属性)中使用的可选的var属性:

<c:if test="${Employee.salary <= 10000}" >

It's time for a raise <c:out value="${Employee.name">! </c:if>

下面,你可以看到JSTL通过c:choose、c:when和c:otherwise对跳转逻辑的支持。你可以在一个选择(choose)标记中包含一组c:when操作;如果对c:when块中的表达式求值为真,则不对下面的c:choose操作中的测试进行计算。如果对c:when块中测试求值没有一个为真,则计算c:otherwise操作(如果存在的话)的内容:

<c:choose>

<c:when test="${dept.name == 

'development'}">

...

</c:when>

<c:when test="${dept.name == 

'marketing'}">

...

</c:when>

<c:otherwise>

...

</c:otherwise>

</c:choose>



c:forEach标记提供了一个对元素集合进行迭代的简单方法。如果你只想迭代集合中的部分元素,你可以分别指定开始和结束索引以及带有可选的开始、结束与步进属性的增量值。在下例中,我们对变量empNames中的一个集合的内容进行迭代;在每个循环中,下一个元素被放置在变量名中,并在c:forEach操作的主体中进行求值。

 

<table>

<c:forEach var="name" items="${empNames}">

<tr><td><c:out value="${name}"/></td></tr>

</c:forEach>

</table>

JSTL核心标记库还可以简化异常处理。以前,你必须将Java try/catch语句放置在Java scriptlet中,或者在错误页面中提供它们。JSTL通过c:catch标记提供了一个处理异常的高明方法,而无需使用scriptlet。

<c:catch>

   <!—. . . some set of nested JSTL tags that fire an exception->



</c:catch>

可以在jakarta.apache.org的参考实现中提供的JSTL文档中找到其他JSTL标记库如XML、国际化和数据库标记库的例子。

上一篇: 根据启发函数解决八数码问题
下一篇: Eclipse插件的安装与配置

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JSR 168 翻译02

下一篇:WSDL在Web Service中的意义和作用