JSTL常用方法

    技术2022-05-11  58

    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 collectioncount    number     The position of the current round of iteration, starting with 1first       boolean     Whether the current round of iteration is the firstlast       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";%>定义了一个变量,不可以通过${}来访问,只可以通过<% %>这种形式访问。


    最新回复(0)