第一章 EL表達式常見用法

来源:http://www.cnblogs.com/java-zhao/archive/2016/07/01/5633881.html
-Advertisement-
Play Games

el最常用的幾種使用場景: 從配置文件中讀取屬性 缺失值情況下,配置預設值 el內部字元串使用String的方法 三目運算符 正則表達式 註入系統屬性(system properties) 調用系統原有函數 直接註入文件進行操作 讀取另一個bean的函數的返回值 1、從配置文件中讀取屬性 appli ...


el最常用的幾種使用場景:

  • 從配置文件中讀取屬性
  • 缺失值情況下,配置預設值
  • el內部字元串使用String的方法
  • 三目運算符
  • 正則表達式
  • 註入系統屬性(system properties)
  • 調用系統原有函數
  • 直接註入文件進行操作
  • 讀取另一個bean的函數的返回值

1、從配置文件中讀取屬性

application.properties

name=\u8D75\u8BA1\u521A
1     @Value("${name}")//這裡必須使用$,使用#是不行的
2     private String name;
3     @RequestMapping(value = "/name", method = RequestMethod.GET)
4     public String getName() {
5         return name;
6     }

註意:記住下邊兩句話

  • ${}讀取屬性文件的值
  • ${}讀取最後一個滿足條件的值;#{}讀取所有滿足條件的值

2、缺失值情況下,配置預設值

1     @Value("${name2:'剛子'}")//這裡必須使用$,使用#是不行的
2     private String name2;
3     @RequestMapping(value = "/name2", method = RequestMethod.GET)
4     public String getName2() {
5         return name2;
6     }

3、el內部字元串使用String的方法

1 name.list=\u8D75\u8BA1\u521A,\u738B\u5A1C
1     @Value("#{'${name.list}'.split(',')}")
2     private List<String> nameList;
3     @RequestMapping(value = "/nameList", method = RequestMethod.GET)
4     public List<String> getNameList() {
5         return nameList;
6     }

4、三目運算符

1 name.three=\u6768\u8FC7
1     @RequestMapping(value = "/nameThree", method = RequestMethod.GET)
2     public String getNameThree(@Value("${name.three!='楊過'?'黃蓉':'小龍女'}") String nameThree) {
3         return nameThree;
4     }

註意:@value可以直接作為入參

5、正則表達式

1     @Value("#{'100' matches '\\d+'}")//這裡必須使用#,使用$是不行的
2     private boolean isDigital;
3     @RequestMapping(value = "/nameRegEx", method = RequestMethod.GET)
4     public boolean getNameRegEx() {
5         return isDigital;
6     }

6、註入系統屬性

1     @Value("#{systemProperties['os.name']}")//這裡必須使用#,使用$是不行的
2     private String osName;
3     @RequestMapping(value = "/osName", method = RequestMethod.GET)
4     public String getOsName() {
5         return osName;
6     }

7、調用系統原有函數

1     @Value("#{T(java.lang.Math).random() * 10}")//註意:這裡只生成一次,之後你無論調用多少次getRandomValue(),都返回同一個值
2     private String randomValue;
3     @RequestMapping(value = "/randomValue", method = RequestMethod.GET)
4     public String getRandomValue() {
5         return randomValue;
6     }

8、直接註入文件進行操作

testfile/testEl.txt

1 喬峰--降龍十八掌
2 楊過--黯然銷魂掌
 1     @Value("classpath:testfile/testEl.txt")
 2     private Resource txtResource;
 3     @RequestMapping(value = "/resource", method = RequestMethod.GET)
 4     public String getResource() {
 5         try {
 6             return IOUtils.toString(txtResource.getInputStream(), "UTF-8");
 7         } catch (IOException e) {
 8             ExceptionUtils.getStackTrace(e);
 9         }
10         return StringUtils.EMPTY;
11     }

註意:這個很重要,操作文件使用Apache.commons.io.IOUtils來操作。

9、讀取另一個bean的函數的返回值

1 @Component("eLComponent")
2 public class ELComponent {
3     public String getNameBean(){
4         return "喬峰";
5     }
6 }
1     @Value("#{eLComponent.getNameBean()}")//這裡必須使用#,使用$是不行的
2     private String nameBean;
3     @RequestMapping(value = "/nameBean", method = RequestMethod.GET)
4     public String getNameBean() {
5         return nameBean;
6     }

註意:被調用bean最好指定一下beanName。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在C#的迴圈語句中,有的時候我們希望跳過其中某個迴圈,有時我們希望當某個條件滿足時,直接終止整個迴圈。C#為我們提供了 continue;和break;語句。 continue和break的用法一樣,直接寫上這個單詞,後面加一個分號就行 比如: continue; break; continue和b ...
  • Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發工具包系列產品。 Visual Studio 2015 是一個豐富的集成開發環境,可用於創建出色的 Windows、Android 和 iOS 應用程式以及新式 Web 應用程式和雲服務。 主要特點: ●適用於各種規模和復 ...
  • jQuery dataTables 插件是一個優秀的表格插件,是後臺工程師的福音!它提供了針對數據表格的排序、瀏覽器分頁、伺服器分頁、查詢、格式化等功能。dataTables 官網也提供了大量的演示和詳細的文檔進行說明,為了方便使用,這裡進行詳細說明。 去官網:https://www.datatab ...
  • (此文章同時發表在本人微信公眾號“dotNET每日精華文章”,歡迎右邊二維碼來關註。) 題記:ABP框架對多租戶場景提供了很好的支持,內建了多租戶的處理機制,今天我們來深入解析一下這一特性。 最近在基於ABP框架(ASP.NET Boilerplate)開發了一個SaaS。所以接下來可能會時不時分享... ...
  • 需求: 光看標題大家肯定不知道是什麼東西,先上效果圖: 這不就是ListView的Group效果嗎?? 看上去是的。但是請聽完需求.1.Group中的集合需要支持增量載入ISupportIncrementalLoading 2.支持UI Virtualization oh,no。ListView 自 ...
  • 漸變透明 ...
  • ...
  • 通過設置BlurEffect的Radius屬性的可以設置模糊度 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...