jsp之常用標籤庫之初見

來源:互聯網
上載者:User

標籤:jsp   標籤   語言   運算式   需要   擷取值   範圍   指標   head   

今天剛開始學習JSTL,所以在這裡總結一下今天學到的一些東西。
1.首先什麼是EL運算式?答:el的原名是:expression language,用來實現代碼的複用,同樣一段邏輯代碼,el運算式表示出來的就是比jsp
原型語言寫出來的簡單清晰。
2.JSTL四大標籤分類有哪四大?答:核心標籤、格式化標籤、SQL標籤、XML標籤,其中最重要的是核心標籤,其他的地位次之
3.el標籤具體的表示,即該如何在jsp頁面中編寫el運算式?答:舉例說明如下:<c:out value="常量或者變數“ ></c:out>形如這樣的代碼就是一個典型的JSTL,中間的value
就是el運算式;el運算式怎麼寫? 這樣的例子就是一個el運算式:${sessionScope.name};el運算式中可以用.來
取值,也可以用[]來取值。那麼兩者有什麼不一樣的呢?
3..和[]取值有什麼區別和聯絡?答:.和[]在大多數的情況下是通用的,但是除了兩種情況下是只允許使用[]的;a.當你取值的屬性中包含特殊字元時,需要使用[],如:${user.first-name},這樣就是錯誤的,應該使用
${user["first-name"]}切忌,這裡需要加上雙引號,是因為不加雙引號,會將first-name當作常量來處理,
而不是一個變數。b.當需要通過變數動態取值時需要使用[],如我需要一個變數接收我傳過來的值,${user[param]} ,但是.只能是
具體的屬性,如${user.age}、${user.sex}等這種確定的,遇到一個變數待傳參數的量只能使用[].[]也可以用於集合內部定位,如${booklist[0].price};這裡的0需要定位於集合內部。
4.el運算式中還有一種簡單直觀的寫法${name},那麼它不會出錯的原因是什麼呢?答:因為在el運算式中,取值是按照一定的順序來的,它會先從最小的範圍內開始尋找,
page--->request--->session--->application.
當都找不到的時候,就會出現Null 字元串,即什麼也不會輸出來,這裡不會有null 指標異常報出,本來輸出的應該是null,但是
這裡做了最佳化,會輸出Null 字元串。
5.el運算式還存在自動類型轉換機制。如普通的jsp中從文字框中擷取值的傳回值類型
直接是String 類型的,當需要做算術運算時還是要進行類型轉換,但是el運算式不需要,直接與數字相運算即可,如:
普通的jsp書寫方式:<% int count = Integer.parseInt(request.getPatameter("name"));
int sum = count+20;
%>
el運算式:${requestScope.name+20}
在上面的兩種寫法中可以看出來,當第一種在擷取了文字框之中的值後還需要進行類型轉換,比較麻煩,但是第二種只需要擷取
就行,會根據後邊的變數進行自動類型轉換。

6.el運算式都有哪些隱式對象?
答:常用的四種:pageScope、requestScope、sessionScope、applicationScope四種對應於jsp中的page、
request、session、application.
不常用的還有一些形如:cookie,header、headerValues等,分別表示cookie對象、header中儲存的是http的頭部的
map集合等。
7.el運算式中還可以使用運算子嗎?如果可以,能使用哪些運算子呢?
答:可以使用運算子.
a.算術運算子:+、-、*、/、mod等
b.比較子:==、!=、>、<等
c.邏輯運算子:&&、||、!
d.驗證運算子: empty
下面分別舉例說明一下怎麼使用這些運算子:
a.<c:out value="${1+2}" ></c:out> //3
b.<c:out value="${a==b}" ></c:out> //true,如果在沒有定義a,b變數時,它預設都是"",會返回true
c.<c:out value="${true && false}" ></c:out> //返回false
d.<c:out value="${empty name}" /> //如果name不為空白,那麼傳回值返回false,如果name不存在,為null
//或者Null 字元串均認為true
好啦,今天的總結就到這裡,如果有什麼不到之處還望指出。


jsp之常用標籤庫之初見

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.