el最常用的几种使用场景:

  • 从配置文件中读取属性
  • 缺失值情况下,配置默认值
  • el内部字符串使用String的方法
  • 三目运算符
  • 正则表达式
  • 注入系统属性(system properties)
  • 调用系统原有函数
  • 直接注入文件进行操作
  • 读取另一个bean的函数的返回值

1、从配置文件中读取属性

application.properties

name=\u8D75\u8BA1\u521A
     @Value("${name}")//这里必须使用$,使用#是不行的
private String name;
@RequestMapping(value = "/name", method = RequestMethod.GET)
public String getName() {
return name;
}

注意:记住下边三句话

  • ${}不支持表达式(三目表达式不算表达式);#{}支持
  • ${}读取属性文件的值
  • ${}读取最后一个满足条件的值;#{}读取所有满足条件的值

2、缺失值情况下,配置默认值

     @Value("${name2:'刚子'}")//这里必须使用$,使用#是不行的
private String name2;
@RequestMapping(value = "/name2", method = RequestMethod.GET)
public String getName2() {
return name2;
}

3、el内部字符串使用String的方法

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

4、三目运算符

 name.three=\u6768\u8FC7
     @RequestMapping(value = "/nameThree", method = RequestMethod.GET)
public String getNameThree(@Value("${name.three!='杨过'?'黄蓉':'小龙女'}") String nameThree) {
return nameThree;
}

注意:@value可以直接作为入参

5、正则表达式

     @Value("#{'100' matches '\\d+'}")//这里必须使用#,使用$是不行的
private boolean isDigital;
@RequestMapping(value = "/nameRegEx", method = RequestMethod.GET)
public boolean getNameRegEx() {
return isDigital;
}

6、注入系统属性

     @Value("#{systemProperties['os.name']}")//这里必须使用#,使用$是不行的
private String osName;
@RequestMapping(value = "/osName", method = RequestMethod.GET)
public String getOsName() {
return osName;
}

7、调用系统原有函数

     @Value("#{T(java.lang.Math).random() * 10}")//注意:这里只生成一次,之后你无论调用多少次getRandomValue(),都返回同一个值
private String randomValue;
@RequestMapping(value = "/randomValue", method = RequestMethod.GET)
public String getRandomValue() {
return randomValue;
}

8、直接注入文件进行操作

testfile/testEl.txt

 乔峰--降龙十八掌
杨过--黯然销魂掌
     @Value("classpath:testfile/testEl.txt")
private Resource txtResource;
@RequestMapping(value = "/resource", method = RequestMethod.GET)
public String getResource() {
try {
return IOUtils.toString(txtResource.getInputStream(), "UTF-8");
} catch (IOException e) {
ExceptionUtils.getStackTrace(e);
}
return StringUtils.EMPTY;
}

注意:这个很重要,操作文件使用Apache.commons.io.IOUtils来操作。

9、读取另一个bean的函数的返回值

 @Component("eLComponent")
public class ELComponent {
public String getNameBean(){
return "乔峰";
}
}
     @Value("#{eLComponent.getNameBean()}")//这里必须使用#,使用$是不行的
private String nameBean;
@RequestMapping(value = "/nameBean", method = RequestMethod.GET)
public String getNameBean() {
return nameBean;
}

注意:被调用bean最好指定一下beanName。

第一章 EL表达式常见用法的更多相关文章

  1. Upgrading to Java 8——第一章 Lambda表达式

    第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...

  2. jstl与el结合常见用法

    JSTL Functions标签库 在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库: <%@taglib uri=”http://java.sun.com/js ...

  3. Java Web程序设计笔记 • 【第9章 EL表达式】

    全部章节   >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...

  4. [应用篇]第一篇 EL表达式入门

    概念 EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. 作用 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的 ...

  5. EL表达式经典用法

    1.EL表达式获取list集合length长度: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=&quo ...

  6. El表达式的用法个人总结

    EL表达式的好处: 通过EL可以简化在JSP开发中对对象的引用,从而规范页面代码,增加程序的可读性及可维护性. EL表达式的几个特点:  1:可以与jsp标签库结合使用,也可以与javascript语 ...

  7. 几个常用EL表达式的用法

    转载至  http://yqsshr.blog.51cto.com/469059/131824 1,用来获取表单数据  param 和 paramValues 1.jsp 的有如下表单 <for ...

  8. 第一章 Lambda表达式

    1.1 Why Lambdas? 当你操作多线程的时候,你会像下面这样将要处理的代码放到run()函数中: class Worker implements Runnable { public void ...

  9. 个人整理的jsp、EL表达式、JSTL标签库的笔记,少概念多实用,需要的留下邮箱,会第一时间分享原稿PDF给大家!

    jsp 第一章 jsp介绍及对比servlet 作用: 动态网页技术,动态的从数据库获取数据 jsp和servlet的优缺点: jsp优点:页面表现方便,利于写html代码 jsp缺点:业务逻辑处理麻 ...

随机推荐

  1. 设置 cookie过期时间

    cookie.setMaxAge(0);//不记录cookie cookie.setMaxAge(-1);//会话级cookie,关闭浏览器失效 cookie.setMaxAge(60*60);//过 ...

  2. Entity Framework Core 入门(2)

    安装 EF Core 将 EF Core 添加到不同平台和常用 IDE 中的应用程序的所需步骤汇总. 分步入门教程 无需具备 Entity Framework Core 或任何特定 IDE 的原有知识 ...

  3. C#语法浮点型字面量

    C#语法浮点型字面量 小数是生活中经常使用的一种数据表示形式.我们日常使用的5.5.0.6都是小数.在编程语言中,这种数据表示方式被称为浮点型数.浮点型数由整数部分.小数部分和小数点组成.浮点型字面量 ...

  4. JQuery的源码阅读

    探索原理,animation实现,一个对象可以同时绑定多个事件,这是如何实现的? (function(window, undefined) { function jQuery(selector){ r ...

  5. http常见请求头与响应头

    1.HTTP常见的请求头 If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比.如果时间一致,那么返回304, ...

  6. PHP 二维数组根据某个字段排序 复制代码 array_multisort

    //二维数组,按照里面的age从大到小降序,代码如下 <?php header('Content-Type:text/html;Charset=utf-8'); $arrUsers = arra ...

  7. flex sqlite 操作blog 二进制数据

    1,              通常的操作方式: 首先我们建立表:CREATE TABLE "pages" ("id" varchar, "data& ...

  8. px em rem 字体单位问题

    px:相对长度单位,相对于屏幕分辨率 em:相对长度单位,相对于body而言 rem:相对长度单位,相对于html根元素 注意:浏览器默认大小:16px;

  9. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  10. C# .NET 获取网络适配器信息和路径信息

    C# .NET 获取网络适配器信息 1:NetworkInterface 类: 该类位于 System.Net.NetworkInformation 命名空间 该类可以方便的检测本机有多少个网卡(网络 ...