JSTL標籤+EL表達式

1、核心標籤庫:java

         1> <c:out  value=」輸出值」  escapeXML=」布爾值」 default="默認值" />web

                   在頁面輸出指定值.數組

       輸出值能夠是字面量,也能夠是EL表達式的計算結果瀏覽器

        若是escapeXML爲true則輸出值字符原樣輸出,若是爲false則對字符串中的特殊字符進行轉換後輸出.服務器

    例:cookie

<c:out value="${username}" default="no data"></c:out>

 

         2> <c:set   var=」變量名」  value=」變量值」   scope=」page | request | session | application」  />session

                   在指定的」scope」做用域中定義一個變量,若是不指定scope值,則默認爲pageapp

                   其中scope的值能夠爲 page | request | session | applicationspa

                   他們在JSP中對應的內置對象是pageScope | request | session | application.net

    例:

<c:set var="username" value="hello" scope="request" />

         3> <c:set    var=」變量名」   scope=」page | request | session | application」>

                   變量值

              </c:set>

   4> <c:remove   var="變量名"   scope="page | request | session | application" />

      用於刪除指定做用域的變量,scope屬性是可選的,表示待刪除變量來自於哪一個做用域,默認爲page。

      若是不指定scope,則<c:remove>會從1.page、2.request、3.session以及 4.application中順序尋找是否存在指定名稱的數據。若是找到,則將在找到的範圍內所有刪除,也就是若是有同名的變量存儲在不一樣的範圍內,則這 些變量會所有刪除,而不是僅僅刪除第一個碰見的指定變量。

 

 

 

二、EL表達式:

    1> EL中針對四做用域中的內置對象分別爲:pageScope | requestScope | sessionScope | applicationScope

這與JSP的四個內置做用域對象相對應,其類型所有都是java.util.Map類型,可是這4個隱含對象只能用來取得(讀取)某個範圍的屬性值,即JSP中的 getAttribute(String name) ,而不能取得其餘的信息,好比在JSP中的request對象除可以存取屬性外,還能夠用來接收參數和表頭信息。

    2> 與輸入相關的兩個內置對象爲:param 和 paramValues

    他們對應於JSP中的 request.getParameter(String name)  和  request.getParameterValues(String name)

    3> 其餘內置對象:

      1.cookie

//服務器端創建Cookie對象
Cookie c = new Cookie("username", "root");
//客戶端取得Cookie中的值
${cookie.username.value}

      注意:這裏必定要加value,不然會顯示javax.servlet.http.Cookie@6f411f,表示取得的是cookie對象地址的toString()方法。

      2.header

      header用來存儲用戶瀏覽器和服務器用來溝通的數據.當用戶瀏覽器請求服務器的頁面時候,會傳送一個記載信息的表頭文件.而服務器 能夠經過header或者headerValues來取得這些值。其中headeru用來取得同一標頭名稱只有一個值的信息,而headerValues 用來取得同一標頭名稱擁有不一樣的值的信息。

${header.host}
${header["user-agent"]}

      3.initParam

      initParam用來取得在web站點中設置的環境參數(ServletContext)值.
      4.pageContext

       它是用來取得有關用戶要求或頁面的詳細信息

複製代碼
取得請求的參數字符串
${pageContext.request.queryString}

取得請求URL
${pageContext.request.requestURL}

取得web應用名稱
${pageContext.request.contextPath}

取得HTTP請求方式(GET or POST)
${pageContext.request.method}

取得使用協議
${pageContext.request.protocol}

取得用戶IP地址
${pageContext.request.remoteAddr}

判斷Session是否爲新
${pageContext.session.new}

取得sessionID
${pageContext.session.id}
取得server端信息
${pageContext.servletContext.serverInfo}
複製代碼

參考:http://my.oschina.net/sunjun/blog/9024

 

2> EL都是經過"[]"與"."運算符來存取數據的:

${applicationScope.user.userName}

${applicationScope.user["userName"]}

 

3> 可使用EL存取器(也稱做導航)能夠訪問JavaBean、Map、對象數組、List中的數據。

1.使用存取器讀取JavaBean中的數據:

例如:

姓名:${sessionScope.person.name}
年齡: ${sessionScope.person.age}
朋友們: ${sessionScope.person.friends[0]}、${sessionScope.person.friends[2]}

friends是一個ArrayList、person是一個JavaBean

2.使用存取器讀取Map中的數據:


 

 

 

 

 

三、區別:

JSP中四個內置對象爲:pageScope | request | session | application

JSTL中scope屬性的四個內置對象爲: page | request | session | application

EL表達式中四個內置對象爲:pageScope | requestScope | sessionScope | applicationScope

相關文章
相關標籤/搜索