第一章 EL表达式常见用法
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表达式常见用法的更多相关文章
- Upgrading to Java 8——第一章 Lambda表达式
第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...
- jstl与el结合常见用法
JSTL Functions标签库 在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库: <%@taglib uri=”http://java.sun.com/js ...
- Java Web程序设计笔记 • 【第9章 EL表达式】
全部章节 >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...
- [应用篇]第一篇 EL表达式入门
概念 EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. 作用 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的 ...
- EL表达式经典用法
1.EL表达式获取list集合length长度: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=&quo ...
- El表达式的用法个人总结
EL表达式的好处: 通过EL可以简化在JSP开发中对对象的引用,从而规范页面代码,增加程序的可读性及可维护性. EL表达式的几个特点: 1:可以与jsp标签库结合使用,也可以与javascript语 ...
- 几个常用EL表达式的用法
转载至 http://yqsshr.blog.51cto.com/469059/131824 1,用来获取表单数据 param 和 paramValues 1.jsp 的有如下表单 <for ...
- 第一章 Lambda表达式
1.1 Why Lambdas? 当你操作多线程的时候,你会像下面这样将要处理的代码放到run()函数中: class Worker implements Runnable { public void ...
- 个人整理的jsp、EL表达式、JSTL标签库的笔记,少概念多实用,需要的留下邮箱,会第一时间分享原稿PDF给大家!
jsp 第一章 jsp介绍及对比servlet 作用: 动态网页技术,动态的从数据库获取数据 jsp和servlet的优缺点: jsp优点:页面表现方便,利于写html代码 jsp缺点:业务逻辑处理麻 ...
随机推荐
- 设置 cookie过期时间
cookie.setMaxAge(0);//不记录cookie cookie.setMaxAge(-1);//会话级cookie,关闭浏览器失效 cookie.setMaxAge(60*60);//过 ...
- Entity Framework Core 入门(2)
安装 EF Core 将 EF Core 添加到不同平台和常用 IDE 中的应用程序的所需步骤汇总. 分步入门教程 无需具备 Entity Framework Core 或任何特定 IDE 的原有知识 ...
- C#语法浮点型字面量
C#语法浮点型字面量 小数是生活中经常使用的一种数据表示形式.我们日常使用的5.5.0.6都是小数.在编程语言中,这种数据表示方式被称为浮点型数.浮点型数由整数部分.小数部分和小数点组成.浮点型字面量 ...
- JQuery的源码阅读
探索原理,animation实现,一个对象可以同时绑定多个事件,这是如何实现的? (function(window, undefined) { function jQuery(selector){ r ...
- http常见请求头与响应头
1.HTTP常见的请求头 If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比.如果时间一致,那么返回304, ...
- PHP 二维数组根据某个字段排序 复制代码 array_multisort
//二维数组,按照里面的age从大到小降序,代码如下 <?php header('Content-Type:text/html;Charset=utf-8'); $arrUsers = arra ...
- flex sqlite 操作blog 二进制数据
1, 通常的操作方式: 首先我们建立表:CREATE TABLE "pages" ("id" varchar, "data& ...
- px em rem 字体单位问题
px:相对长度单位,相对于屏幕分辨率 em:相对长度单位,相对于body而言 rem:相对长度单位,相对于html根元素 注意:浏览器默认大小:16px;
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- C# .NET 获取网络适配器信息和路径信息
C# .NET 获取网络适配器信息 1:NetworkInterface 类: 该类位于 System.Net.NetworkInformation 命名空间 该类可以方便的检测本机有多少个网卡(网络 ...