隨筆-124  評論-49  文章-56  trackbacks-0

          JSTL
          ------------------------------------------------------------------------------
          功能領域   URI                                    前綴   描述
          Core       http://java.sun.com/jsp/jstl/core       c     核心標記庫
          format     http://java.sun.com/jsp/jstl/fmt        fmt   格式化標記庫-進間、日期、國際化
          SQL        http://java.sun.com/jsp/jstl/sql        sql   對數據庫的操作
          XML        http://java.sun.com/jsp/jstl/xml        xml   對XML的操作
          Functions  http://java.sun.com/jsp/jstl/functions  fn    函數標記庫,主要是字符串
          用在視圖層的技術
          --------------------------------------------------------------------------------
          用使:
          1 引用標記庫
          <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
          <html>
          <body>
          用戶名:<c:out value="${username}" />
          </body>
          </html>
          -----------------------------------------------------------------------------------
          Core核心標記庫
          操作變量     條件操作     循環操作     URI操作
          out          if           forEach      import
          set          choose       forTokens    url
          remove       when                      redirect轉向
          catch        otherwise                 param
          --------------------------------------------------------------------------------------
          <c:out>標記
          使用語法
          1 <c:out value="vlaue" [escapeXml="{true|false}"]
             [default="defaultValue"] />
          2 <c:out value="vlaue" [escapeXml="{true|false}"]>
             default value
            </c:out>
          屬性
          ------------------------------------------------------------------------
          屬性名      | 描述                                                              | EL    | 必選  | 缺省值
          value          | 需要輸出的值,可以是EL表達式或常量  | 可以  | 是    | 無
          default        | value值為空時所輸出的內容                       | 可以  | 否    | 無
          escapeXml | 為true對輸出內容中的<、>、'、"和&        | 可以  | 否    | true
                            | 字符進行轉義,分別轉成都市&lt,&gt,      |       |       |
                            | ',"和&amp.為false不進行轉義 |       |       |
          ------------------------------------------------------------------------
          <c:set>標記
          使用語法
          1 <c:set value="value" var="name" [scope="{page|request|session|application}"] />
          2 <c:set var="name" [scope="{page|request|session|application}"]>
            value
            </c:set>
          3 <c:set var="name" target="target" property="propertName">
          4 <c:set target="target" propert="propertyName">
            value
            </c:set>
          3和4是給已有的對象屬性賦值
          屬性
          -----------------------------------------------------------------------------
          屬性名    | 描述                                                                      | EL    | 必選  | 缺省值
          value        | 要保存的內容,可以是EL表達式或常量             | 可以  | 是    | 無
          target       | 要修改屬性的對象名,一般為javaBeans對象名 | 可以  | 否    | 無
          property  | 要修改的javaBeans的屬性                                    | 可以  | 否    | 無
          var          | 要保存內容的變量名                                            |  否   | 是    | 無
          scope     | 保存內容的變量的作用范圍                                 |  否   | 否    | page
          -----------------------------------------------------------------------------
          <c:remove>標記
          使用語法
          <c:remove var="name" [scope="{page|request|session|application}"] />
          屬性
          ------------------------------------------------------------------------------------------------
          屬性名    | 描述                                              | EL  | 必選  | 缺省值
          var           | 被刪除的變量的名字                  | 否  | 是    | 無
          scope       | 被刪除的變量的作用范圍          | 否  | 否    | page,request,session,application
          ------------------------------------------------------------------------------------------------
          <c:catch>標記
          使用語法
          <c:catch [var="name"]>
           body content
          </c:catch>
          屬性
          ------------------------------------------------------------------------
          屬性名    | 描述                                                   | EL  | 必選  | 缺省值
          var           | 用來保存違例信息的變量名            | 否  | 否    | 無
          ------------------------------------------------------------------------
          例子:
          <c:catch var="ex">
              <%
               String number="none";
               int i=Integer.parseInt(number);
              %>
          </c:catch>
          ${ex}
          將違例信息保存在ex變量中,如沒有發生違例,則什么也不作

          <c:if>標記
          使用語法
          1 <c:if test="condition" var="name" [scope="{page|request|session|application}"] />
          2 <c:if test="condition" [var="name"] [scope="{page|request|session|application}"]>
           body content
          </c:if>
          屬性
          -----------------------------------------------------------------------------
          屬性名    | 描述                                                             | EL    | 必選  | 缺省值
          test           | 判斷所要使用的條件                                 | 可以  | 是    | 無
          var           | 保存條件結果的變量的名稱                     | 否    | 否    | 無
          scope       | 保存條件結果的變量的作用范圍             | 否    | 否    | page
          -----------------------------------------------------------------------------
          <c:choose>標記
          使用語法
          <c:choose>
           body content(<when>and<otherwise>)
          </c:choose>

          <c:when>標記
          使用語法
          <c:when test="condition">
           body content
          </c:when>
          屬性
          -----------------------------------------------------------------------------
          屬性名    | 描述                                                                    | 動態  | 必選  | 缺省值
          test           | 如果它的結果為true,執行<c:when>所包含的  | 可以  | 是    | 無
                          | 內容,false則不執行<c:when>所包含的內容      |       |       |
          -----------------------------------------------------------------------------
          <c:otherwise>標記
          使用語法
          <c:otherwise>
           body content
          </c:otherwise>
          ---------------------------------------------------------------------------
          例子:
          <c:choose>
              <c:when test="${param.age>=70}">
                70以上
              </c:when>
              <c:when test="${param.age>35 and param.age<70}">
                35-70
              </c:when>
              <c:otherwise>
                35以下
              </c:otherwise>
          </c:choose>
          --------------------------------------------------------------------------------------------
          <c:forEach>標記
          使用語法
          1 <c:forEach [var="name"] items="collection" [varStatus="varStatusName"]
             [begin="begin"] [end="end"] [step="step"]>
               body content
            </c:forEach>
          2 <c:forEach [var="name"] items="collection" [varStatus="varStatusName"]
             begin="begin" end="end" [step="step"]>
               body content
            </c:forEach>
          屬性
          ------------------------------------------------------------------------------------------------------------------------------
          屬性名    | 描述                                | EL    | 必選  | 類型                                            |缺省值
          begin        | 開始下標                        | 可以  | 否    | int                                                 |0
          end          | 結束下標                        | 可以  | 否    | int                                                  |集合中最后一個成員的索引
          step         | 步長                                 | 可以  | 否    | int                                                 |1
          var          | 代表當前成員的變量名 |  否   | 否    | String                                              |無
          items       | 進得循環的集合             |  否   | 否    | String,數組,Map,Collection,Iterator,Enumeration |無
          varStatus | 顯示循環狀態的變量     | 可以  | 否    | String                                          |無
          -------------------------------------------------------------------------------------------------------------------------------
          varStatus屬性
          ----------------------------------------------------------
          名稱    | 類型     | 描述   
          index   | int      | 現在所操作的成員的索引 
          count   | int      | 現在所操作的成員的總數 
          first   | boolean  | 現在所操作的成員,是否為第一個成員   
          last    | boolean  | 現在所操作的成員,是否為最后一個成員  
          ----------------------------------------------------------
          <%
              String names[]=new String[4];
              names[0]="afdsaf";
              names[1]="dggh";
              names[2]="bcbncn";
              names[3]="434535";
              pageContext.setAttribute("names",names);
              Map map=new HashMap();
              map.put("k1","v1");
              map.put("k2","v2");
              request.setAtrribute("map1",map);
          %>
              <c:forEach items="${names}" var="name" begin="1" end="2" step="1" varStatus="i">
               ${name } ${i.index } ${i.count } ${i.first } ${i.last }<br/>
              </c:forEach>
              <c:forEach items="${map1}"  var="v">
               ${v.key } = ${v.value }<br/>
              </c:forEach>

          <c:forTokens>標記 將一個字符串進行分隔
          使用語法
          <c:forTokens items="stringOfTokens" delims="delimiters" [var="name"]
             [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
               body content
          </c:forTokens>
          屬性
          ------------------------------------------------------------------------------------------
          屬性名    | 描述                                 | EL    | 必選  | 類型      |缺省值
          items        | 進行迭代處理的變量     | 可以  | 是    | String    |無
          delims      | 分割符號                         | 可以  | 是    | char      |無
          begin        | 開始下標                         | 可以  | 否    | int       |0
          end         | 結束下標                          | 可以  | 否    | int       |集合中最后一個成員的索引
          step        | 步長                                  | 可以  | 否    | int       |1
          var         | 代表當前成員的變量名   |  否   | 否    | String    |無
          varStatus | 顯示循環狀態的變量     |  否   | 否    | String    |無
          -------------------------------------------------------------------------------------------
          <c:forTokens items="dsf:dsafsa:dsffs,dfdfs" var="name" delims=":,">
              ${name }<br/>
          </c:forTokens>
          -------------------------------------------------------------------------------------------
          <c:import>標記 相當于include將另外一個頁面的內容引入到當前頁面來
          使用語法
          1 <c:import url="url" [context="context"] [var="name"] [scope="{page|request|session|application}"]
             [charEncoding="charEncoding"]>
               <c:param>//可傳參數
            </c:import>
          2 <c:import url="url" [context="context"] varReader="varReaderName"
             [charEncoding="charEncoding"]>
               body content//內容
            </c:import>
          屬性
          ------------------------------------------------------------------------------------------
          屬性名           | 描述                                                                 | EL    | 必選  |缺省值
          url                   | 需要導入頁面url地址                                       | 是    | 是    |無
          context            | 本地web應用的名字                                       | 是    | 否    |當前應用的名子
          charEncoding  | 設置導入數據的字符編碼                               | 是    | 否    |ISO-8859-1
          var                  | 接受導入文本的變量的名稱                           | 否    | 否    |無
          scope            | 接受導入文本內容的變量的作用范圍              | 否    | 否    |page
          varReader     | 用于接受導入文本的java.io.Reader變量的名稱 | 否    | 否    |無
          -------------------------------------------------------------------------------------------

          <c:url>標記 創建鏈接
          使用語法
          1 <c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"] />
          2 <c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"] />
              <c:param />
            </c:url>
          屬性
          ------------------------------------------------------------------------------------------
          屬性名       | 描述                                             | EL    | 必選  |缺省值
          value           | url地址                                         | 是    | 是    |無
          context       | web應用的名字                           | 是    | 否    |當前web應用的名子
          var             | 保存url地址的變量的名稱          | 否    | 否    |輸出到當前頁面
          scope         | 存儲url地址的變量的作用范圍   | 否    | 否    |page
          -------------------------------------------------------------------------------------------
          <c:url var="website" value="http://localhost:8080/webproject/out.jsp">
              <c:param name="p" value="hello" />
          </c:url>
          ${website }<br>
          <a href=" ${website }">dddd</a>
          --------------------------------------------------------------------------------
          <c:redirect>標記 頁面跳轉
          使用語法
          1 <c:redirect url="value" [context="context"] />
          2 <c:redirect url="value" [context="context"]>
              <c:param />
            </c:redirect>
          屬性
          ------------------------------------------------------------------------------------------
          屬性名        | 描述                                             | 必選  |缺省值
          url                | url地址                                         | 是    |無
          context         | 要轉向到的web應用的名字       | 否    |當前web應用的名子
          -------------------------------------------------------------------------------------------
          <c:redirect url="LoopTag.jsp">
               <c:param name="p" value="aa" />
          </c:redirect>
          -------------------------------------------------------------------------------


          Format標記庫
          -----------------------------------------
          國際化有關        | 時間日期有關(一般不在頁面作處理)
          setLocale         | formatNumber
          requestEncoding   | formatDate
          bundle            | parseDate
          message           | parseNumber
          param             | setTimeZone
          setBundle         | timeZone
          -----------------------------------------
          <fmt:setLocale>標記  設置國際化語言
          使用語法
          <fmt:setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"] />
          屬性
          ---------------------------------------------------------------------------------------------------------------------------
          屬性名        | 描述                                                                                | EL    | 必選  |缺省值
          value         | 表示該語言環境的一個字符串,或者是java.util.Locale類的對象                          | 可以  | 是    |無
          scope         | 指定這個對象的作用范圍,有效值為page,requset,session,applicattion                   | 否    | 否    |page
          variant       | 進一步針對特定的平臺或供應商定制語言環境。如,MAC和WIN分別對應Macintosh和Windows平臺 | 可以  | 否    |無
          ---------------------------------------------------------------------------------------------------------------------------
          <fmt:setBundle>標記  設定國際化資源束的位置
          使用語法
          <fmt:setBundle basename="basename" [var="name"] [scope="{page|request|session|application}"] />
          屬性
          ---------------------------------------------------------------------------------------------------------------------------
          屬性名        | 描述                                                                                | EL    | 必選  |缺省值
          basename      | 設置使用的資源文件束文件的路徑與名稱,不應當包含任保本地化后綴或文件擴展名          | 可以  | 是    |無
          var           | 設置了該屬性,那么將把basename屬性所標識的資源束賦給該屬性值所命名的變量            | 否    | 否    |無
          scope         | 指明缺省資源束設置所應用的JSP作用域                                                 | 否    | 否    |page
          ---------------------------------------------------------------------------------------------------------------------------
          束文件名resources_zh_CN.properties(basename屬性)
          <fmt:setBundle basename="com.v512.examples.resources" />

          <fmt:bundle>標記  設定某個頁面或某幾行國際化資源束的位置
          使用語法
          <fmt:bundle basename="basename" [prefix="prefix"]>
            body content
          <fmt:bundle>
          屬性
          ---------------------------------------------------------------------------------------------------------------------------
          屬性名        | 描述                                                                                | EL    | 必選  |缺省值
          basename      | 設置使用的資源文件束文件的路徑與名稱,不應當包含任保本地化后綴或文件擴展名          | 可以  | 是    |無
          prefix        | 為所嵌套的<fmt:message>標記的key值指定缺省前綴                                      | 可以  | 否    |無
          ---------------------------------------------------------------------------------------------------------------------------

          <fmt:message>標記  (核心)設置資料束文件中的KEY和對應的內容
          使用語法
          1 <fmt:message key="messageKey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] />
          2 <fmt:message [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"]>
            key
            [<fmt:param>]
            </fmt:message>
          屬性
          -----------------------------------------------------------------------------------------------------------------------------------------------
          屬性名       | 描述                                                                                                                                                                                | EL    | 必選  |缺省值
          key             | 用來確定在資源束中定義哪個文本消息進行輸出顯示                                                                                              | 可以  | 是    |無
          bundle        | 用來指定一個顯式的資源束,用來查找由key屬性標識的消息.請注意,該屬性的值必須是實際的資源束.             | 可以  | 否    |無
                            | 如當指定<fmt:setBundle>操作的var屬性時同該標記所賦予的資源束.<fmt:message>的bundle屬性不支持字符串值                                    
          var             | 該標記所生成的文本消息賦給指定的變量,而不是輸出到JSP頁面中                                                                        | 否    | 否    |無
          scope         | 由來指定的var屬性指定的變量的作用域,有效值:page,request,session,application                                                         | 否    | 否    |page
          -----------------------------------------------------------------------------------------------------------------------------------------------

          <fmt:requestEncoding>標記  設置編碼方式
          使用語法
          <fmt:requestEncoding [value="charsetName"] />
          作用等同于
          request.setCharacterEncoding()
          --------------------------------------------------------------------------------
          <fmt:param>標記  設置編碼方式
          使用語法
          1 <fmt:param value="messageParameter" />
          2 <fmt:param>
            body content
            </fmt:param>
          -----------------------------------------------------------------
          <fmt:formatDate> 標記
          使用方法:
          <fmt:formatDate value="${today}" type="date" />
          <fmt:formatDate value="${today}" dateStyle="full" />
          <fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" />
          <fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="d"/>
          ----------------------------------------------------------------------------
          屬性名     | 描述                          | 值                |結果
          value         | 要格式化的日期值 | default           |2008-8-1
          type          | 顯現的日期格式      | date              |2008-8-1
                           |                                   | time              |14:47:59
                           |                                   | both              |2008-8-1 14:47:59
          dateStyle   | 顯現的日期格式      | short             |08-8-1
                           |                                  | medium            |2008-8-1
                           |                                    | long              |2008年8月1日
                           |                                     | full              |2008年8月1日 星期一
          pattern       | 定義日期格式           |yyy/MM/dd HH:mm:ss |2008/08/01 14:47:59
          var            | 保存值變量名            |                   |
          scope        | 保存變量的scope       |                   |
          -----------------------------------------------------------------------------
          <fmt:formatNumber> 標記
          <fmt:formatNumber value="${n}" pattern="###,###.##"/>
          <fmt:formatNumber value="${n}" pattern="###,###.0000"/>
          ----------------------------------------------------------------------------
          屬性名      | 描述                          | 值                |結果
          value          | 要格式化的日期值 | default           |123,456.123
          type           | 顯現的數據格式      | number(數字)      |123,456.123
                            |                                   | currency(貨幣)    |¥123,456.123
                            |                                   | percent(百分比)   |23.33%
          groupingUsed| 是否分組顯示       | true/false        |
          pattern       | 定義數據格式           |###,###.##         |123,456.123
                            |                                    |###,###.0000       |123,456.1230
          var             | 保存值變量名          |                   |
          scope        | 保存變量的scope       |                   |
          -----------------------------------------------------------------------------
          <format>標記例子
          1 建立resources.properties文件(英文)
            內容:guestbook.display.welcome=welcome to my website
          2 建立resources.properties_zh_CN.properties文件(中文)
            方法:
            (1)在臨時目錄下建立一個臨時文件resources_t.properties
               內容:guestbook.display.welcome=歡迎大家訪問網站
            (2)在DOS下進行該臨時目錄,執行DOS命今
               c:\temp>native2ascii -encoding uft-8 resources_t.properties resources_zh_CN.properties
            (3)將轉換好的文件復制到項目目錄下
          3 建立JSP頁面
          <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"  %>
          fmt:bundle basename="com.tags.resources">
              <fmt:message key="guestbook.display.welcome">
              </fmt:message>
          </fmt:bundle>

          -----------------------------------------------------------------------------------------------------------
          <sql>標簽
          <setDatasource>
          <update>
          <query>
          <param>
          1 導入sql的jar包
          <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"  %>
          <sql:setDataSource driver="" url="" user="" password="" var="" scope=""/>
          <sql:update var="oerder" dataSource="${conn}">
           insert into BookOrder(username,zipcode,phone,creditcard,total)
           values(?,?,'88888833333','123432432423',50.00)
           <sql:param value="accp"/>
           <sql:param value="1111"/>
          </sql:update>
          <sql:query var="rs" dataSource="${conn}">
             select * from aa
          </sql:query>
          <C:forEach var="row" items="${rs.rows}">
             ${row.username}     ${row.password}
          </c:forEach>

          posted on 2009-11-29 22:19 junly 閱讀(337) 評論(0)  編輯  收藏 所屬分類: jsp/servlet
          主站蜘蛛池模板: 南京市| 寻乌县| 共和县| 公主岭市| 石河子市| 吴川市| 祥云县| 玉田县| 罗源县| 德清县| 宁津县| 扶沟县| 旺苍县| 唐河县| 翼城县| 盐山县| 西畴县| 星子县| 镇宁| 灵山县| 靖宇县| 麟游县| 滨州市| 山东| 平阴县| 麻栗坡县| 肇东市| 三亚市| 康保县| 南阳市| 马关县| 东乌珠穆沁旗| 天台县| 南澳县| 噶尔县| 文化| 广宗县| 古交市| 博客| 精河县| 宣威市|