程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 第一章 EL表達式常見用法,第一章el表達式

第一章 EL表達式常見用法,第一章el表達式

編輯:JAVA綜合教程

第一章 EL表達式常見用法,第一章el表達式


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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved