最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

EL表達(dá)式簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年07月24日 10:33:14   作者:fjdingsd  
EL全名為Expression Language,這篇文章主要給大家介紹EL表達(dá)式的主要作用及內(nèi)容簡(jiǎ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)行其他一些功能的顯示,例如迭代等等。 

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

  在JSP頁(yè)面中使用${標(biāo)識(shí)符}的形式,就是通知JSP引擎在Servlet中調(diào)用pageContext.findAttribute(“標(biāo)識(shí)符”)來(lái)獲取數(shù)據(jù),具體是以標(biāo)識(shí)符作為關(guān)鍵字從各個(gè)域中來(lái)尋找對(duì)象或?qū)傩?。如果找到,則以字符串形式返回顯示在JSP頁(yè)面上,如果沒(méi)找到則以空字符串””顯示,這一點(diǎn)跟<jsp:getProperty>標(biāo)簽不一樣,也說(shuō)明了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á)式來(lái)獲取當(dāng)前web工程路徑

 ${pageContext.request.contextPath}

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

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

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

 <%
   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}

瀏覽器中觀察:  

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

 <%
   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 }

在瀏覽器中觀察:  

  可以看到除了用”.”來(lái)取得屬性或者M(jìn)ap集合中key對(duì)應(yīng)的值,還可以使用”[‘標(biāo)識(shí)符']”來(lái)獲取(注意中括號(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á)式的不足:無(wú)論是從List集合還是從Map集合中,都無(wú)法使用EL表達(dá)式來(lái)迭代集合,因此如果需要迭代集合,需要EL表達(dá)式配合JSTL標(biāo)簽使用。 

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

  語(yǔ)法:${運(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á)式的另一種用途還可以用來(lái)做數(shù)據(jù)回顯,假設(shè)有一個(gè)用戶要修改其注冊(cè)信息,那么服務(wù)器(或從數(shù)據(jù)庫(kù))在返回其數(shù)據(jù)到顯示頁(yè)面時(shí),應(yīng)該在他編輯過(guò)的信息重新顯示出來(lái)。

例9: 

<%
   request.setAttribute("gender", "female");
  %>
  <input type="radio" name="gender" value="male" ${gender=='male'?'checked':'' }>男 &nbsp;  
  <input type="radio" name="gender" value="female" ${gender=='female'?'checked':'' }>女 

瀏覽器中顯示:  

相關(guān)文章

  • spring boot集成mongodb的增刪改查的示例代碼

    spring boot集成mongodb的增刪改查的示例代碼

    這篇文章主要介紹了spring boot集成mongodb的增刪改查的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • java文件和目錄的增刪復(fù)制

    java文件和目錄的增刪復(fù)制

    這篇文章主要為大家詳細(xì)介紹了java文件和目錄的增刪復(fù)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳解Maven項(xiàng)目缺少M(fèi)aven Dependencies解決方法總結(jié)

    詳解Maven項(xiàng)目缺少M(fèi)aven Dependencies解決方法總結(jié)

    這篇文章主要介紹了詳解Maven項(xiàng)目缺少M(fèi)aven Dependencies解決方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java 關(guān)鍵字 volatile 的理解與正確使用

    Java 關(guān)鍵字 volatile 的理解與正確使用

    本文主要介紹 volatile 的使用準(zhǔn)則,以及使用過(guò)程中需注意的地方,感興趣的朋友一起看看吧
    2017-06-06
  • Java及nginx實(shí)現(xiàn)文件權(quán)限控制代碼實(shí)例

    Java及nginx實(shí)現(xiàn)文件權(quán)限控制代碼實(shí)例

    這篇文章主要介紹了Java及nginx實(shí)現(xiàn)文件權(quán)限控制代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的緩存簡(jiǎn)單案例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Spring Boot管理用戶數(shù)據(jù)的操作步驟

    Spring Boot管理用戶數(shù)據(jù)的操作步驟

    SpringBoot結(jié)合Thymeleaf模板引擎,可以快速搭建Web應(yīng)用,介紹了使用SpringBoot處理JSON數(shù)據(jù)的基本過(guò)程,包括創(chuàng)建實(shí)體類、視圖頁(yè)面和控制器,通過(guò)這些步驟,即可完成基于SpringBoot和Thymeleaf的簡(jiǎn)單Web開(kāi)發(fā),感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • springboot中server.ssl.key-store配置路徑的問(wèn)題小結(jié)

    springboot中server.ssl.key-store配置路徑的問(wèn)題小結(jié)

    這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問(wèn)題,文中還記錄了Spring Boot SSL(https)實(shí)例,介紹在web程序中使用自簽名的SSL(HTTPS)證書(shū)及創(chuàng)建SSL認(rèn)證,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 關(guān)于yml文件字符串,List,Map的書(shū)寫(xiě)方式并使用@ConfigurationProperties注入配置類

    關(guān)于yml文件字符串,List,Map的書(shū)寫(xiě)方式并使用@ConfigurationProperties注入配置類

    這篇文章主要介紹了關(guān)于yml文件字符串,List,Map的書(shū)寫(xiě)方式并使用@ConfigurationProperties注入配置類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring?Boot?Actuator?漏洞利用小結(jié)

    Spring?Boot?Actuator?漏洞利用小結(jié)

    spring對(duì)應(yīng)兩個(gè)版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會(huì)有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下
    2023-11-11

最新評(píng)論

巨野县| 无极县| 桃源县| 绥芬河市| 法库县| 宿松县| 久治县| 宁阳县| 江北区| 弥勒县| 安泽县| 垦利县| 云安县| 电白县| 郎溪县| 通州市| 诸暨市| 奉化市| 涞水县| 邢台市| 长岛县| 前郭尔| 伊金霍洛旗| 双流县| 平陆县| 无极县| 东城区| 涞源县| 乃东县| 尼勒克县| 什邡市| 稷山县| 广东省| 青田县| 醴陵市| 弥勒县| 永新县| 博乐市| 石楼县| 当雄县| 乌审旗|