激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - EL表達式簡介_動力節(jié)點Java學院整理

EL表達式簡介_動力節(jié)點Java學院整理

2020-12-06 14:36fjdingsd Java教程

EL全名為Expression Language,這篇文章主要給大家介紹EL表達式的主要作用及內(nèi)容簡介,感興趣的朋友一起看看

jsp頁面中支持使用el表達式,el全名為expression language。el表達式的主要作用有:

  ① 獲取數(shù)據(jù);

  ② 執(zhí)行運算;

  ③ 使用el表達式的11大隱式對象;

  ④ 調(diào)用java方法。

  當然,el表達式還能配合jstl標簽,進行其他一些功能的顯示,例如迭代等等。 

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

  在jsp頁面中使用${標識符}的形式,就是通知jsp引擎在servlet中調(diào)用pagecontext.findattribute(“標識符”)來獲取數(shù)據(jù),具體是以標識符作為關(guān)鍵字從各個域中來尋找對象或?qū)傩浴H绻业剑瑒t以字符串形式返回顯示在jsp頁面上,如果沒找到則以空字符串””顯示,這一點跟<jsp:getproperty>標簽不一樣,也說明了el表達式比這個標簽要好用。

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

?
1
2
3
4
5
<%
  string name = "ding";
  request.setattribute("personname", name);
 %> 
 ${personname }

瀏覽器中觀察: 

EL表達式簡介_動力節(jié)點Java學院整理 

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

?
1
2
3
4
5
6
<%
 person p = new person("ding",25);
  request.setattribute("person", p);
 %> 
 ${person }   <br>
 ${person.name } <br>

瀏覽器中觀察:  

EL表達式簡介_動力節(jié)點Java學院整理

例3:獲取對象中的對象的屬性

  在domain包中的兩個javabean:

?
1
2
3
4
5
6
7
8
9
10
public class person {
  private string name;
  private int age;
 private address address;
 。。。省略各個屬性的get和set方法
  }
 public class address {
 private string city; 
  。。。省略city屬性的get和set方法
 }

在jsp頁面中代碼為:

?
1
2
3
4
5
6
7
8
<%
   person p = new person();
  address a = new address();
  a.setcity("amoy");
  p.setaddress(a);
  request.setattribute("person", p);
 %>
 ${person.address.city }

在瀏覽器中觀察: 

EL表達式簡介_動力節(jié)點Java學院整理 

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

例3-2:在web工程中使用el表達式來獲取當前web工程路徑

?
1
${pagecontext.request.contextpath}

該el表達式的值為:  

EL表達式簡介_動力節(jié)點Java學院整理

  注意,該表達式顯示的最前面就已經(jīng)有一個斜杠了”/”。這里在el表達式中的“pagecontext”是el中的一個隱式對象,具體請看下一篇博客。

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

?
1
2
3
4
5
6
7
<%
  list<person> personlist = new arraylist<person>();
 personlist.add(new person("ding",25));
 personlist.add(new person("lrr",24));
 request.setattribute("persons",personlist);
 %> 
 ${persons[0].name } love ${persons[1].name}

瀏覽器中觀察:  

EL表達式簡介_動力節(jié)點Java學院整理

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

?
1
2
3
4
5
6
7
8
9
<%
  map<string,person> personmap = new hashmap<string,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 }

在瀏覽器中觀察:  

EL表達式簡介_動力節(jié)點Java學院整理

  可以看到除了用”.”來取得屬性或者map集合中key對應的值,還可以使用”[‘標識符']”來獲取(注意中括號中有單引號),這個尤其在標識符為數(shù)字的情況下,使用”.”會報錯,而使用”[‘標識符']”則不會報錯。

  注意,el表達式能獲取對象的屬性是因為該對象中的字段提供了get方法,所以成為了屬性,el僅能獲取對象的屬性,而不能獲取對象的字段,這一點要明確。

el表達式的不足:無論是從list集合還是從map集合中,都無法使用el表達式來迭代集合,因此如果需要迭代集合,需要el表達式配合jstl標簽使用。 

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

  語法:${運算表達式}  

EL表達式簡介_動力節(jié)點Java學院整理

EL表達式簡介_動力節(jié)點Java學院整理

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

例6:

?
1
2
3
4
5
<%
  request.setattribute("username", "root");
  request.setattribute("password", "123");
 %>
 ${username == "root" && password == "123" }

瀏覽器上顯示:true。 

除了上述三種簡單的運算符外,el表達式還支持 empty運算符和二元表達式(表達式?值1:值2) 

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

例7:

?
1
2
3
4
5
6
7
8
<%
  request.setattribute("person", null);
   request.setattribute("address", "");
  request.setattribute("user", new user());
 %>
 ${empty(person)}  <br>
 ${empty(address)} <br>
 ${empty(user)}   <br>

瀏覽器中觀察: 

EL表達式簡介_動力節(jié)點Java學院整理 

二元表達式:

例8:

?
1
2
3
4
5
6
<%
  user user = new user();
  user.setusername("fjdingsd");
  pagecontext.setattribute("user", user);
 %> 
歡迎您:${user!=null ? user.username : '' }

瀏覽器中觀察:

EL表達式簡介_動力節(jié)點Java學院整理  

  上面這個例子使用el表達式的二元表達式,如果user對象不為null,則輸出該對象中的username屬性,否則輸出空字符。 

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

例9: 

?
1
2
3
4
5
<%
   request.setattribute("gender", "female");
  %>
  <input type="radio" name="gender" value="male" ${gender=='male'?'checked':'' }>男   
  <input type="radio" name="gender" value="female" ${gender=='female'?'checked':'' }>女

瀏覽器中顯示:  

EL表達式簡介_動力節(jié)點Java學院整理

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91嫩草丨国产丨精品入口 | 精品一区二区三区欧美 | 91成人久久 | www.91sese| 色999中文字幕| 99在线免费观看视频 | 国产自91精品一区二区 | 亚洲视频在线免费看 | 国语自产免费精品视频在 | 国产精品一区二区三区在线看 | 日韩欧美高清一区 | 在线视频 亚洲 | 性高跟鞋xxxxhd4kvideos | 国产1区视频 | 免费a观看| 亚洲国产精品高潮呻吟久久 | 国产午夜精品久久久久 | 久久久久久久久日本理论电影 | 欧美黄色免费视频 | 天天操很很操 | 中文字幕爱爱视频 | 伦理三区 | 91精品国产福利尤物免费 | 国产成人自拍视频在线 | 久久久久久久.comav | 国产69精品久久99不卡免费版 | 成年人免费黄色片 | 国产精品久久久久久久久久尿 | 麻豆91精品91久久久 | 精品国产91久久久久 | 91精品国产777在线观看 | 91精品国| 欧美一级全黄 | 精国产品一区二区三区 | 国产噜噜噜噜久久久久久久久 | 国产无限资源在线观看 | 国产亚洲精品综合一区 | 一级做人爱c黑人影片 | 丰满年轻岳中文字幕一区二区 | 77成人影院 | 暴力肉体进入hdxxxx0 |