一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

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

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

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

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

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

  ① 獲取數據;

  ② 執行運算;

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

  ④ 調用java方法。

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

  我們先來看使用el表達式來獲取數據

  在jsp頁面中使用${標識符}的形式,就是通知jsp引擎在servlet中調用pagecontext.findattribute(“標識符”)來獲取數據,具體是以標識符作為關鍵字從各個域中來尋找對象或屬性。如果找到,則以字符串形式返回顯示在jsp頁面上,如果沒找到則以空字符串””顯示,這一點跟<jsp:getproperty>標簽不一樣,也說明了el表達式比這個標簽要好用。

例1:獲取域中的普通數據 

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

瀏覽器中觀察: 

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

例2:獲取域中的對象或屬性

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

瀏覽器中觀察:  

EL表達式簡介_動力節點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表達式簡介_動力節點Java學院整理 

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

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

?
1
${pagecontext.request.contextpath}

該el表達式的值為:  

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

  注意,該表達式顯示的最前面就已經有一個斜杠了”/”。這里在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表達式簡介_動力節點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表達式簡介_動力節點Java學院整理

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

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

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

  el表達式支持運算,不管是算術運算、邏輯運算還是關系運算:

  語法:${運算表達式}  

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

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

(此處省略算術運算符)

例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或某數據是否為””空字符串

例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表達式簡介_動力節點Java學院整理 

二元表達式:

例8:

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

瀏覽器中觀察:

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

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

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

例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表達式簡介_動力節點Java學院整理

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜桃成熟时1997在线看免费看 | 亚洲第一区二区快射影院 | 欧美日韩一二三区免费视频观看 | 亚洲AV无码国产精品色在线看 | 99av涩导航| 免费欧美视频 | 国产啪精品视频网给免丝袜 | xxxx俄罗斯大白屁股 | 国产精品日韩欧美在线 | 精品国产91久久久久久久a | 亚洲成人网页 | 久久99热狠狠色一区二区 | 日本三级香港三级久久99 | 亚洲色图影院 | 国产在线播放一区 | 窝窝影院午夜色在线视频 | 日本艳鉧动漫1~6完整版在 | 色老板免费| 国内精品久久久久久久 | 亚洲成年人免费网站 | 精品视频一区二区三区 | 精品小视频在线观看 | 99久久国产综合精品麻豆 | 亚欧视频在线观看 | 国产精品免费精品自在线观看 | 99热这里只有精品久久免费 | h日本漫画全彩在线观看 | 亚洲精品成人在线 | 国精视频一区二区视频 | 精品国产区 | 羞羞答答免费人成黄页在线观看国产 | 日本不卡免免费观看 | 欧美日韩国产超高清免费看片 | 国产精品 色 | 国产亚洲高清国产拍精品 | 免费的强动漫人物 | 小草视频免费观看在线 | 99热热99| 美女张开腿黄网站免费精品动漫 | 天堂网www中文天堂在线 | 日韩一区二区三区四区不卡 |