第一章 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缺点:业务逻辑处理麻 ...
随机推荐
- 【记录】HTTP协议状态码含义
状态码200-299之间的状态码表示成功300-399之间的代码表示资源已经被移走400-499之间的代码表示客户端的请求出错500-599之间的代码表示服务器出错了
- [转]kali中eth0网卡突然消失解决方案
前言 不知道怎么kali的eth0网卡突然消失了.这可有点难受啊.在网上查找了一番找到了解决办法,特此记录. 问题 怎么办? 解决办法 首先使用ifconfig -a命令查看所有的网卡接口 发现 ...
- web服务端安全之分布式拒绝服务攻击
一.DDOS攻击的原理分布式拒绝服务,Distributed Denial of Service,利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务.通过大量合法的请 ...
- python数据分析之csv/txt数据的导入和保存
约定: import numpy as np import pandas as pd 1 2 3 一.CSV数据的导入和保存 csv数据一般格式为逗号分隔,可在excel中打开展示. 示例 data1 ...
- Lost connection to MySQL server at 'reading initial communication packet', system error: 0的一个解决方案
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT在icmp之前/etc/init.d/iptables restar ...
- 浅谈 PHP 中的多种加密技术及代码示例
信息加密技术的分类 单项散列加密技术(不可逆的加密) 属于摘要算法,不是一种加密算法,作用是把任意长的输入字符串变化成固定长的输出串的一种函数 MD5 string md5 ( string $str ...
- EXECL中怎么中把换行符换成任意字符
作文本处理的时候,数据是从execl中拷贝出来的,但是execl中是带有格式的. 导出到txt文本中的时候会出现换行,不满足一行一条数据的要求. 公式 =SUBSTITUTE(A1,),"A ...
- [POI2015]Logistyka
[POI2015]Logistyka 题目大意: 一个长度为\(n(n\le10^6)\)的数列\(A_i\),初始全为\(0\).操作共\(m(m\le10^6)\)次,包含以下两种: 将\(A_x ...
- 【BZOJ】4767: 两双手【组合数学】【容斥】【DP】
4767: 两双手 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1057 Solved: 318[Submit][Status][Discuss] ...
- Codeforces Round #359 (Div. 2) B. Little Robber Girl's Zoo 水题
B. Little Robber Girl's Zoo 题目连接: http://www.codeforces.com/contest/686/problem/B Description Little ...