星空网 > 软件开发 > Java

第一章 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。




原标题:第一章 EL表达式常见用法

关键词:表达式

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

打造有竞争力的亚马逊Listing,新手卖家要注意这几点:https://www.ikjzd.com/articles/104165
亚马逊新手卖家该如何做好一款产品?:https://www.ikjzd.com/articles/104166
亚马逊销量不理想,怎样做Listing诊断优化?:https://www.ikjzd.com/articles/104167
旺季来临,电商交易欺诈值得警惕!:https://www.ikjzd.com/articles/10417
亚马逊站内站外流量来源解析!:https://www.ikjzd.com/articles/104172
Facebook引流要如何做?Facebook引流的六大技巧!:https://www.ikjzd.com/articles/104173
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
中国有哪些著名的酒店品牌。:https://www.vstour.cn/a/411242.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流