濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

熱門標(biāo)簽:自繪地圖標(biāo)注數(shù)據(jù) 外呼系統(tǒng)使用方法 給地圖標(biāo)注得傭金 海外圖書館地圖標(biāo)注點(diǎn) 潤(rùn)滑油銷售電銷機(jī)器人 南通通訊外呼系統(tǒng)產(chǎn)品介紹 電銷機(jī)器人免培訓(xùn) 電話機(jī)器人需要使用網(wǎng)絡(luò)嗎 如何看懂地圖標(biāo)注點(diǎn)

JSP頁(yè)面中支持使用EL表達(dá)式,EL全名為Expression Language。EL表達(dá)式的主要作用有:

 ?、?獲取數(shù)據(jù);

  ② 執(zhí)行運(yùn)算;

 ?、?使用EL表達(dá)式的11大隱式對(duì)象;

 ?、?調(diào)用Java方法。

當(dāng)然,EL表達(dá)式還能配合JSTL標(biāo)簽,進(jìn)行其他一些功能的顯示,例如迭代等等。

  我們先來看使用EL表達(dá)式來獲取數(shù)據(jù)

  在JSP頁(yè)面中使用${標(biāo)識(shí)符}的形式,就是通知JSP引擎在Servlet中調(diào)用pageContext.findAttribute(“標(biāo)識(shí)符”)來獲取數(shù)據(jù),具體是以標(biāo)識(shí)符作為關(guān)鍵字從各個(gè)域中來尋找對(duì)象或?qū)傩?。如果找到,則以字符串形式返回顯示在JSP頁(yè)面上,如果沒找到則以空字符串””顯示,這一點(diǎn)跟jsp:getProperty>標(biāo)簽不一樣,也說明了EL表達(dá)式比這個(gè)標(biāo)簽要好用。

例1:獲取域中的普通數(shù)據(jù) 

%
     String name = "Ding";
     request.setAttribute("personName", name);
   %>
   
   ${personName }

瀏覽器中觀察:

例2:獲取域中的對(duì)象或?qū)傩?/p>

%
    Person p = new Person("Ding",25);
    request.setAttribute("person", p);
   %>
   
   ${person }      br>
   ${person.name }  br>

瀏覽器中觀察:

例3:獲取對(duì)象中的對(duì)象的屬性

在domain包中的兩個(gè)JavaBean:

public class Person {
  
  private String name;
  private int age;
  private Address address;
  
  。。。省略各個(gè)屬性的get和set方法
  }

public class Address {
  private String city;
  
  。。。省略city屬性的get和set方法
}

在JSP頁(yè)面中代碼為:

%
      Person p = new Person();
      Address a = new Address();
      a.setCity("Amoy");
      p.setAddress(a);
      request.setAttribute("person", p);
   %>
   
   ${person.address.city }

在瀏覽器中觀察:

注意:這種對(duì)象中屬性還是對(duì)象的,要特別注意屬性的名稱一定在JSP上表現(xiàn)一致,否則會(huì)拋出異常。

例3-2:在web工程中使用EL表達(dá)式來獲取當(dāng)前web工程路徑

 ${pageContext.request.contextPath}

該EL表達(dá)式的值為:

注意,該表達(dá)式顯示的最前面就已經(jīng)有一個(gè)斜杠了”/”。這里在EL表達(dá)式中的“pageContext”是EL中的一個(gè)隱式對(duì)象,具體請(qǐng)看下一篇博客。

例4:取出List集合中的元素

%
    ListPerson> personList = new ArrayListPerson>();
    personList.add(new Person("Ding",25));
    personList.add(new Person("LRR",24));
    request.setAttribute("persons",personList);
   %>
   
   ${persons[0].name } love ${persons[1].name}

瀏覽器中觀察:

例5:取出Map集合中的元素

%
    MapString,Person> personMap = new HashMapString,Person>();
    personMap.put("p1",new Person("Ding",25));
    personMap.put("p2",new Person("LRR",24));
    
    request.setAttribute("pMap", personMap);
   %>
   
   ${pMap.p1.name }  br>
   love br>
   ${pMap['p2'].name }

在瀏覽器中觀察:

  可以看到除了用”.”來取得屬性或者M(jìn)ap集合中key對(duì)應(yīng)的值,還可以使用”[‘標(biāo)識(shí)符']”來獲取(注意中括號(hào)中有單引號(hào)),這個(gè)尤其在標(biāo)識(shí)符為數(shù)字的情況下,使用”.”會(huì)報(bào)錯(cuò),而使用”[‘標(biāo)識(shí)符']”則不會(huì)報(bào)錯(cuò)。

  注意,EL表達(dá)式能獲取對(duì)象的屬性是因?yàn)樵搶?duì)象中的字段提供了get方法,所以成為了屬性,EL僅能獲取對(duì)象的屬性,而不能獲取對(duì)象的字段,這一點(diǎn)要明確。

EL表達(dá)式的不足:無論是從List集合還是從Map集合中,都無法使用EL表達(dá)式來迭代集合,因此如果需要迭代集合,需要EL表達(dá)式配合JSTL標(biāo)簽使用。

  EL表達(dá)式支持運(yùn)算,不管是算術(shù)運(yùn)算、邏輯運(yùn)算還是關(guān)系運(yùn)算:

  語法:${運(yùn)算表達(dá)式}

(此處省略算術(shù)運(yùn)算符)

例6:

%
  request.setAttribute("username", "root");
  request.setAttribute("password", "123");
  %>
  ${username == "root"  password == "123" }

瀏覽器上顯示:true。

除了上述三種簡(jiǎn)單的運(yùn)算符外,EL表達(dá)式還支持 empty運(yùn)算符和二元表達(dá)式(表達(dá)式?值1:值2)

empty運(yùn)算符:檢測(cè)對(duì)象是否為null或某數(shù)據(jù)是否為””空字符串

例7:

%
      request.setAttribute("person", null);
      request.setAttribute("address", "");
      request.setAttribute("user", new User());
   %>
   ${empty(person)}   br>
   ${empty(address)}  br>
   ${empty(user)}     br>

瀏覽器中觀察:

二元表達(dá)式:

例8:

%
    User user = new User();
    user.setUsername("fjdingsd");
    pageContext.setAttribute("user", user);
   %>
    
  歡迎您:${user!=null ? user.username : '' }

瀏覽器中觀察:

  上面這個(gè)例子使用EL表達(dá)式的二元表達(dá)式,如果user對(duì)象不為null,則輸出該對(duì)象中的username屬性,否則輸出空字符。

  二元表達(dá)式的另一種用途還可以用來做數(shù)據(jù)回顯,假設(shè)有一個(gè)用戶要修改其注冊(cè)信息,那么服務(wù)器(或從數(shù)據(jù)庫(kù))在返回其數(shù)據(jù)到顯示頁(yè)面時(shí),應(yīng)該在他編輯過的信息重新顯示出來。

例9:

% 

  request.setAttribute("gender", "female");

%>

input type="radio" name="gender" value="male" ${gender=='male'?'checked':'' }>男 
input type="radio" name="gender" value="female" ${gender=='female'?'checked':'' }>女 

瀏覽器中顯示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • jsp EL表達(dá)式詳解
  • JSP頁(yè)面無法識(shí)別EL表達(dá)式問題解決方案
  • 使用IDEA編寫jsp時(shí)EL表達(dá)式不起作用的問題及解決方法
  • 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式
  • jsp 開發(fā)之struts2中s:select標(biāo)簽的使用
  • JSP 開發(fā)之 releaseSession的實(shí)例詳解
  • springMVC如何將controller中Model數(shù)據(jù)傳遞到j(luò)sp頁(yè)面
  • JSP之EL表達(dá)式基礎(chǔ)詳解

標(biāo)簽:內(nèi)江 廣州 黃石 樂山 南京 銅川 大連 貸款邀約

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理》,本文關(guān)鍵詞  JSP,中,表達(dá)式,用法,動(dòng)力,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    洪雅县| 儋州市| 万山特区| 上高县| 汕尾市| 岑溪市| 夹江县| 奉节县| 扬中市| 鄢陵县| 泽州县| 海晏县| 遂平县| 灵寿县| 兴业县| 梁河县| 桓仁| 丰顺县| 巴楚县| 柘城县| 临泽县| 林西县| 武穴市| 建水县| 汽车| 彝良县| 临泽县| 六盘水市| 普格县| 西峡县| 呼伦贝尔市| 大冶市| 翼城县| 博客| 宁南县| 栖霞市| 招远市| 宁强县| 临颍县| 留坝县| 南充市|