JSTL基礎功能

來源:互聯網
上載者:User
   這裡主要討論了JSTL的一些基礎功能,主要包括:處理複選框參數、從表單中讀取日期、錯誤處理、驗證使用者輸入。

一.處理複選框參數

這個功能比較簡單,主要是利用JSTL中paramValues這個隱式變數,它和param是相對應個,只不過前者用來處理多個同名參數,而後者是用來處理單個參數的。看下面的例子:

    country.jsp:給出了一組多選框,用於選擇國家

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

    <head>

       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       <title>Hello World</title>

    </head>

    <body>

       ---------------------處理多選框的表單-------------------<br>

       <form action="checkbox.jsp" method="post">

           <input value="中國" type="checkbox" name="country">

           中國

           <br>

           <input value="英國" type="checkbox" name="country">

           英國

           <br>

           <input value="美國" type="checkbox" name="country">

           美國

           <br>

           <input value="法國" type="checkbox" name="country">

           法國

           <br>

           <input value="德國" type="checkbox" name="country">

           德國

           <br>

           <input type="submit">

       </form>

    </body>

</html>

checkbox.jsp:處理複選框參數

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="fmt" prefix="fmt"%>

<%@ taglib uri="core" prefix="c"%>

<html>

    <head>

       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       <title>處理複選框參數</title>

    </head>

    <body>

       <c:choose>

           <c:when test="${not empty paramValues.country}">

               您選擇了下列國家:

                <ul>

                  <c:forEach items="${paramValues.country}" var="adj">

                     <li>

                         <c:out value="${adj}" />

                     </li>

                  </c:forEach>

                </ul>

           </c:when>

           <c:otherwise>

           沒有選中任何國家

            </c:otherwise>

       </c:choose>

    </body>

</html>

二.錯誤處理

當JSTL發生錯誤時,我們可以有3中方法來處理它:

● 不作任何處理,此時JSP容器會給我們列印出詳細的錯誤資訊,對開發人員而言有助於debug,但是對使用者而言不是很好

● 使用<c:catch>標籤捕捉異常

● 使用JSP的errorPage屬性,指定一個通用的錯誤處理頁面

第一種和第三種處理方式都比較常見,這裡主要說一下如何使用<c:catch>標籤來處理頁面異常,它的屬性如下表所示:

屬性名稱

描述

是否必須

預設值

var

將錯誤資訊作為變數儲存起來

當<c:catch>標籤體裡面的內容發生錯誤時,它並不會導致整個頁面的終止執行,它只會讓<c:catch>標籤中剩下的內容終止執行,而<c:catch>標籤之外的內容仍然會繼續執行。如果沒有給<c:catch>標籤指定var屬性,那麼<c:catch>標籤體中的所有錯誤將會被忽略,頁面繼續執行;如果指定了var屬性,那麼錯誤資訊講話儲存在一個變數中,這個變數名就由var屬性指定。如果想得到關於錯誤的更多詳細資料,可以通過如下的代碼:<c:out value="${parseError.message}"/>帶列印錯誤資訊,其中parseError就是我們在<c:catch>標籤之中通過var屬性指定的值。

三.驗證輸入

JSTL不能用來做很複雜的資料驗證,比如驗證電話號碼的合法性之類的。它主要用於如下幾種簡單的驗證:

●     確保使用者在一個表單域中輸入了內容

●     檢查一個表單域中有內容時另一個域是否有或者沒有

●     檢查使用者輸入的數字是否超過了某個限制

    這通常是一個應用的展示層進行驗證的順序。對輸入進行驗證時,有兩個要注意的地方:首先就是在頁面中的什麼地方對輸入進行驗證,其次就是當輸入非法時如何提示使用者,一遍他能夠修正錯誤。給出了一個利用JSTL來進行簡單驗證的模型:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.