JSTL常用方法

v JSTL

                                      URI                                           前缀

Core                             http://java.sun.com/jstl/core                  c

XML processing           http://java.sun.com/jstl/xml                   x

I18N formation             http://java.sun.com/jstl/fmt                   fmt

Database access            http://java.sun.com/jstl/sql                   sql

Ø JSTL定义了简单的表达式语言(EL,用于将行为属性设为在运行时计算出来的动态值。

       EL表达式以“${”符开始,以”}”符结尾

Ø 表达式语言操作符:

操作符   执行的操作

.             访问bean的属性或Map条目

[]            访问数组或List元素

()            将子表达式分组以改变操作优先级

+-*/        数学运算

Empty    对空的变量值(null)或空的String、数组、maplist进行测试

EL语言的empty操作符避免了被迫出来null值和空字符串(“”)之间的差异。Empty

还可以为空的数组、java.urit.Listjava.util.Map求值,也就是说它可以用来测试多数常见类型的空的集合。

Ø 隐含的EL变量

变量名                 描述

pageScope             所有页面作用域变量的集合(java.util.Map

requestScope         所有请求作用域变量的集合(java.util.Map

SessionScope        所有会话作用域变量的集合(java.util.Map

applicationScope    所有应用程序作用域变量的集合(java.util.Map

param                   所有请求参数的集合,每个参数是单个的Stringjava.util.Map

paramvalues

header

headerValues

cookie

initParam                     所有应用程序初始化请求参数的集合,每个参数是单个的String

java.util.Map

pageContext          javax.servlet.jsp.PageContext类的一个实例,提供了对各种请求数据的访

                            问。

例:<c:out value=”${param.userName}”/>

Ø<c:out> 把指定为value属性的表达式的结果添加到应答中。

Ø JSTL表达式语言(EL)也支持对bean属性的访问。

<jsp:useBean id=”cartoon”

Class=”com.ora.jsp.CartoonBean”/>

       <img src=”images/<c:out value=${cartoon.fileName}>”>

Ø <c:out>

属性名:escapeXml 如果URL编码则true,如果不URL编码则false,默认为true,(可选)

              Default:可选,如果值属性为空时使用(可选)

<c:out>在输出时会自动地作URL编码转换

Ø <c:forEach>

属性名: itmes:反复迭代的集合,如果为Null,则不会执行迭代,如果没有指定,则必须指

                            定开始和结束属性。,(可选)

              Var: 迭代时当前元素值,(可选)

              varStatus:保存LoopTagStatus对象变量(可选)

              begin:第一个索引,该索引从0开始(可选)

              end 最后一个索引,该索引从0开始(可选)

              step:每次迭代的索引增量(可选)

       例:

<c:forEach var="i" begin="1" end="10" step="2" varStatus="status">
     <c:out value="${i}"/>
     status.index= <c:out value="${status.index}"/>
     status.count=<c:out value="${status.count}"/>
     <br/>
</c:forEach>

结果:

1 status.index= 1 status.count=1

3 status.index= 3 status.count=2
5 status.index= 5 status.count=3
7 status.index= 7 status.count=4
9 status.index= 9 status.count=5


status的变量有:

index    number      The index of the current item in the underlying collection
count    number     The position of the current round of iteration, starting with 1
first       boolean     Whether the current round of iteration is the first
last       boolean     Whether the current round of iteration is the last

Ø  <c:if>

属性名   描述

Test        判断表达式(必须)

Var         保存boolean结果的变量名称(可选)

Scope     变量作用域,默认为page作用域(可选)

Ø <c:when>

属性名   描述

Test        判断表达式(必须)

<c:choose>会从一组相关的互斥选项中选择一个

例:

<c:choose>

       <c:when test=”${param.gender == ‘f’}”>

       … …

       </c:wher>

       <c:otherwise>

       … …

       </c:otherwise>

</c:choose>

Ø <c:set>

属性名   描述

Value      要设置的值,(必须)

Var         保存值的变量的名称(可选),如果没有指定,就必须使用targetproperty属性。

Scope     var指定的变量的作用域,默认为page作用域

Target     带有property指定的属性的MapJavaBeans对象(可选)

Property 设置target指定的对象的属性名(可选)

注意事项:

<c:set var="four" value="xxxxx"/>
<%=pageContext.getAttribute("four")%>

从上面我们可以看到:

pageScope,requestScope,sessionScope,applicationScope全部是通过getAttribute,setAttribute来访问<c:set/>设置的变量。也就是说c:set这种标签时将变量放置在以上page,request,session,application的attribute中。

如果<% java.lang.String name="hello";%>定义了一个变量,不可以通过${}来访问,只可以通过<% %>这种形式访问。

阅读更多
个人分类: web层技术
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭