这里代码forEach 表示什么意思
    <c:forEach var="profBean" items="${bForm.containerMap.profitList}" varStatus="stat">
        <tr>
        <c:if test="${!bActionForm.containerMap.isOnlyOneCritreria}">
          <c:if test="${Bean.isFirstRecordInGroup}">
            <td class="${stat.index%2 == 0 ? 'light' :''}" style="border-right: solid 2px;border-bottom: solid 2px; " rowspan="${profBean.totalGroupNum}">
            ${profBean.primaryCriterion}
            </td>
</c:if>
</c:if>
<c:if test="${bForm.containerMap.isOnlyOneCritreria}">
            <td class="${stat.index%2 == 0 ? 'light' :''}" style="border-right: solid 2px; text-align:right">
            ${Bean.primaryCriterion}
            <c:if test="${profBean.subProfitBeanList !=null}">
            <c:forEach var="subProfitBean" items="${profBean.subProfitBeanList}">
            <br>
            ${subProfitBean.primaryCriterion}
            </c:forEach>
            </c:if>

解决方案 »

  1.   

    c:forEach var="profBean" items="${bForm.containerMap.profitList}" varStatus="stat"> 把items指定的列表循环放入变量profBean中, 索引状态信息放入stat变量中
    使用profBean访问遍历得到的每一个元素
    使用stat.count得到当前索引(也就是你经常写的for循环中的i)
      

  2.   

    表示循环,和for( ; ;)差不多
      

  3.   

    <c:forEach)(循环标签)
             格式:
                <c:forEach [var="变量名"] itemes="集合名"> varStatus="当前索引">
                  循环体
                </c:forEach>
      

  4.   

    索引状态信息放入stat变量中 这个stat 表示什么,有什么作用 <c
    <tc
    <c:if test="${!b....这又表示什么  (是否都是el表达式)
      

  5.   

     <c:if test="${!profBean.isLastRecord}">             <td class="${stat.index%2 == 0 ? 'light' :''}" align="right" style="border-right: solid 2px;text-align:right;">
    这里 stat在整个句子表示什么意思
      

  6.   

    JSP标准模板库(JSTL)入门教程(转)上一篇 / 下一篇  2007-05-14 14:16:13 / 个人分类:java编程
    查看( 53 ) / 评论( 0 ) / 评分( 0 / 0 )
    简介山东001在线-山东小熊Y#kB0l7B:c(Z8R4i
    JSP 标准模板库(JSTL)是SUN公司发布的一个针对JSP开发的新组件。JSTL允许你使用标签(tags)来进行JSP页面开发,而不是使用多数 JSP程序员已经习惯了的scrīptlet代码方式开发。JSTL几乎能够做到传统JSP scrīptlet代码能做的任何事情。你可能会疑惑,为什么我们需要另一种这样的HTML生成语言呢?
    `7dnmI3}uO0
    X9]'ou1c%e}7YR0STL 允许JSP程序员使用tags而不是JAVA代码来编程。为了展示为什么这个是更优越的,下面将给出示例。我们会检查一个非常简单的从1数到10的 JSP页面。我们将通过两种方法来检查,一种是基于JSP的scrīptlet,一种是JSTL。当这个计数器页面的例子是用JSP scrīptlet来编写时,JSP页面如下所示:山东001在线-山东小熊| B ^2KIVtNX;~m9bi0yVG rJ0<html>
    +tp3i�F"|0<head>
    j4G!i2mqb0<title>Count to 10 in JSP scrīptlet</title>山东001在线-山东小熊1YQ,U@V _ks1qr
    </head>
    T"d�w n9?6{5k&A.Y-y0<body>
    3W(end M}0<%
    :].Ms7_?2V&o0for(int i=1;i<=10;i++)山东001在线-山东小熊2c d&Wi/Zd8R
    {%>
    |#A w5iE*G0lOd0<%=i%><br/>山东001在线-山东小熊4jS]G:a2h
    <%山东001在线-山东小熊)unA*pO9Rs_ ^0e
    }
    x0u]~_�A;Umz:^0%>山东001在线-山东小熊1X%q'EB(W(Y1A'` U
    </body>
    /H[ { }$M3x4P0</html>
    *e.Z$VrM^7@w@0山东001在线-山东小熊:z?G h/ag-if"R
    正如你在上例中看到的看到的那样,使用scrīptlet代码产生的页面源代码会包含混合的HTML标签和JAVA语句。这种混合型的编程方式不是最佳的方式,其主要原因有以下几点。
    ]cyF7vh0山东001在线-山东小熊"wppphj I a
    主要的原因是它的可读性。这个可读性主要依赖于人类和计算机。JSTL可以允许程序员查看一个只包含完整HTML和类似HTML的标签的页面。
    c@*r9?i][0
    {6c�L7h~1rrca0SP scrīptlet代码的可读性不适合人类。这种混合的scrīptlet和HTML代码对于计算机来说也很难读。尤其是针对那些HTML官方工具如 Dreamweaver和Microsoft FrontPage,所表现出来的不直观性更突出。目前,大多数HTML官方工具会以不可编辑块(non-editable blocks)的形式来隔离JSP scrīptlet代码。这种HTML官方工具通常是不能直接修改JSP scrīptlet代码的。
    f3`#~#Ug0山东001在线-山东小熊g-z B"^LPe)_
    下面这段代码展示这个计数器范例如何使用JSTL方式来编写。正如你所看到的,这个代码列表有不变性,仅仅一个标签被使用。HTML和JSTL标签混合起来产生了这个程序。山东001在线-山东小熊\4i)I`&U&N
    山东001在线-山东小熊�v;g0?4C!j*P7C
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    s-P)vS6z:i0<html>
    P Hd S.P0<head>山东001在线-山东小熊}SD Id7[v%S
    <title>Count to 10 Example (using JSTL)</title>山东001在线-山东小熊x.YU6[R9S"w:B/v
    </head>山东001在线-山东小熊K5E i^)k w:~R
    山东001在线-山东小熊4w8K9K2Cma
    <body>
    1l QGhB&}Yc6k'xL0<c:forEach var="i" begin="1" end="10" step="1">山东001在线-山东小熊e;f.T V+C"nOF8K"Y
    <c:out value="${i}" />山东001在线-山东小熊_ } r:U;rJm_ O
    山东001在线-山东小熊"Os&hF Y
    <br />山东001在线-山东小熊 d{1Y$S&mBG!q[
    </c:forEach>山东001在线-山东小熊9fk.g;PN(W
    </body>山东001在线-山东小熊U Ew1e8p2VD6Y
    </html>山东001在线-山东小熊ZEb9L:J pea*Kb@&B^3c pN;d(r'Q0当你检查上面这个例子的代码时,你会看到,JSP页面只包含标签。上面的代码使用诸如<head>和<br>这样的HTML标签。这种标签用法不限制于HTML标签。这段代码也可以使用诸如<c:forEach>和<c:out>这样的JSTL标签。在本文中,将会介绍一些JSTL的基础。
    e!?m*{/F1b D0
    $w1SG"v}g4G0}8j0安装JSTL山东001在线-山东小熊4sT$_e@$x3i'S"J|
    要使用JSTL,你必须安装有一个JSP1.2(或者更高版本)的容器。最普通的JSP容器是Apache Tomcat。你能够从tomcat/">http://jakarta.apache.org/tomcat/这里下载到。独立的Tomcat允许你使用常规的JSP scrīptlet代码。要使用JSTL,你必须在Tomcat中安装JSTL。JSTL的主要URL是 http://java.sun.com/products/jsp/jstl/。要使用JSTL,必须解压这个文件,然后将它安装到Tomcat的正确位置。山东001在线-山东小熊:K(hr N*z |+{[N;qV5uw;qD)@[0要在Tomcat中安装JSTL,有下面三个步骤:山东001在线-山东小熊 E8S)rph;E:X
    山东001在线-山东小熊 Ku6lcd9\
    拷贝JSTL JAR文件到Tomcat的lib目录中.山东001在线-山东小熊^h0n3P*o
    山东001在线-山东小熊w#xL(@ y+i z#W;j
    如果你使用的是Windows, 那么lib目录最可能的位置是C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF\lib。你应该拷贝这些JAR包到你的Tomcat JAR目录。
    j _^ X"a+Vg'd#zJ"Hx0山东001在线-山东小熊8ONQk3RkV-nhR
    拷贝JSTL TLD文件到Tomcat的web-inf目录中
    g e FX3Y$v |0
    F7Vo3s.b0你检查JSTL发布文件时,你应该会注意到有8个文件是以TLD扩展名结尾的。所有这8个文件都应该复制到你的web-inf目录中。
    @W s-y)n�SRN0山东001在线-山东小熊C$dJ Qc;qZ
    修改web.xml文件包含这些TLD文件。
    :o q6f*F2k R~0山东001在线-山东小熊1Z3f1\OEvh+`
    最后,你必须修改你的web.xml,添加8个标签库的表项(entry)。需要添加的表项如下所示:
    9{'u jP[L Z0<taglib>
    E O1b ?%y&{)`0<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>山东001在线-山东小熊Bk[\;PC)f
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    3r!i+z9Z[o0k!f0</taglib>
    F%{3] p/G9sUB.XI0山东001在线-山东小熊P4C'S,I N@a IB
    <taglib>
    MH-T J|%wX!}6K0<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
    })]7{-xuYK0<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>山东001在线-山东小熊t bw*~g6j,t
    </taglib>
    GE~*r!tTC0
    -p J(f?W Z.lF0<taglib>山东001在线-山东小熊4`(qW1~(V:K1_!Zq,J
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>山东001在线-山东小熊1ZKJk1K6U
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    6fC,S K6j)rIV-q0</taglib>山东001在线-山东小熊/d!xin&}DGY
    山东001在线-山东小熊Svi"`.^3DT
    <taglib>
    B!MHo{`a^N0<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>山东001在线-山东小熊(]P^"\[6a+[M1u k
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>山东001在线-山东小熊`6v/~k_rNg4JJ
    </taglib>
    0r@*C$fI0S%Kk4Oxp0山东001在线-山东小熊OLi"E&J4Y}:Nyc
    <taglib>
    hdl%J%j9?3K0<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    p�p:D#IF8^.W;N0<taglib-location>/WEB-INF/sql.tld</taglib-location>
    Ie#X d0wA{W(d]}0</taglib>山东001在线-山东小熊Pw8Xdq O
    山东001在线-山东小熊+U.A6MK1f-M_
    <taglib>山东001在线-山东小熊6I o`&YKt
    <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>山东001在线-山东小熊(C,U3lp9_p
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    {3G�J9]y'r1qY)f�YV:|0</taglib>
    Xdk*w&@:cR0山东001在线-山东小熊cI u{4[5D:i
    <taglib>
    5x8m+y$E#p2a0<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>山东001在线-山东小熊W8q WHT"vl
    <taglib-location>/WEB-INF/x.tld</taglib-location>山东001在线-山东小熊 Oq2GR?/b ]u2{
    </taglib>山东001在线-山东小熊3}2Z|+g7R0S(e6uJs m#E'b9l9]1L r0<taglib>
    u�KF"uG/v%jx0<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>山东001在线-山东小熊F1c9AC.@1azM `]
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>山东001在线-山东小熊e:isk(x4ToQ
    </taglib>
    `5v.a9C9u6kF @%ou0
    2wr f/d P+u#X/fn0完成上面这三步后,你现在可以准备测试你的JSTL安装了。可以通过创建一个包含JSTL的JSP页面来验证。一个最简单的范例程序就是上面的那个计数器程序。你应该将它放置在你的Webroot目录中(C:\Program Files\Apache Tomcat 5.0\webapps\ROOT)。一旦Tomcat启动后,你应该能够通过浏览 http://127.0.0.1:8080/count.jsp来查看这个页面。山东001在线-山东小熊;N?^ }e1S2gEaNAf0如果你没有正确安装JSTL,那么可能不会出现错误信息。如果JSTL不能解释你的标签含义,那么它在Web浏览器上会直接跳过。然后Web浏览器将解释这些未知的HTML标签。多数浏览器仅仅只是忽略这些未知的HTML标签。
    0L)rl|*r"\'nZR0山东001在线-山东小熊yE4r&t @U F
    山东001在线-山东小熊$JsR&}.?A;UR_
    JSTL标签库山东001在线-山东小熊a.SR5|z2Y6b p
    JSTL通常被认为是一种单标签库。但JSTL实际上有4个标签库。这些标签库被概括为如下:山东001在线-山东小熊f~\q.L#}E
      

  7.   

    http://old.sd001.net/html/11/24111-3918.html
      

  8.   

    JSTL功能介绍
    为了抑制JSP里写大量的JAVA代码,所以用JSTL标签来实现JAVA里逻辑调用.
    JSTL为条件处理,迭代,国际化,数据库访问和可扩展标记语言XML处理提供支持.极大地简化了对JSP中应用数据的访问和操作.JSTL包括四个自定义标记库.常用标签库,XML,国际化和数据库标签.JSTL常用标签
    <c:out>标签用于在JSP中显示数据
    例:<c:out value=“${user.userName}”/><c:set>标签用于保存数据
    例:<c:set target="${user.userName}" property=“userName" value="${user}"/>
    将对象user.userName的userName属性值保存到变量user中<c:remove>标签用于删除数据
    例:<c:remove var=“userName” scope=“session”/>
    从session中删除userName.JSTL条件标签
    <c:if>是流控制标签
    例:<c:if test=“${userName}” >
    Welcome !
    </c:if>JSTL条件标签
    <c:choose>这个标签不接受任何属性
    <c:when>
    <c:otherwise>
    由于JSTL没有if (){…} else {…}的条件语句,所以这种形式的语句只能用<c:choose>、<c:when>和<c:otherwise>标签共同来完成了。
    例:
    <c:choose>
    <c:when test=“${user.userName}”>aaa
    </c:when>
    <c:when test=“${}”>kkk
    </c:when>
    <c:otherwise>ddd
    </c:otherwise>
    </c:choose>JSTL循环控制标签
    <c:forEach>标签提供了一个对元素集合进行迭代的简单方法,如果只要迭代集合中的部分元素,分别指定开始和结束值
    例:
    <c:forEach var=“userName” items=“${user}”>
    <c:out value=“${userName}”/>
    </c:forEach>JSTL URL标签
    <c:param>用来传递参数给一个重定向或包含页面
    例:<c:redirect url=“http://www.leeeee……” >
    <c:param name=“” value=“”/>
    </c:redirect><c:import>导入一个url的资源,也可以把参数传递到被导入的页面。
    例:<c:import url=“http://www.leeeee……” />
    <c:url>输出一个url地址.
    例:<a href=“<c:url url=“wap.muzhizu.cn”/>”/>
    <c:redirect>将请求地址重定向到另一个页面
    例:<c:redirect url=“http://www.leeeee……”/>JSTL国际化输出标签
    <fmt:timeZone>操作的作用域仅限于其标记体内容。在 <fmt:timeZone> 标记体中,由标记的 value 属性指定的时区覆盖了 JSP 环境中现有的任何其它时区设置。SQL标签
    <sql:query> 
      

  9.   

    JSTL的循环遍历,就像java中的for一样,
    楼上的楼上都已经有说过了