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

时间: 2024-11-06 11:28:22

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

第一章 Lambda表达式

1.1 Why Lambdas? 当你操作多线程的时候,你会像下面这样将要处理的代码放到run()函数中: class Worker implements Runnable { public void run() { for (int i = 0; i < 1000; i++) doWork(); } ... } 然后,当你想要执行这段代码的时候,需要构造Worker的实例来执行它.你可以把放入到线程池或者简单处理启动一个线程: Worker w = new Worker(); new Thre

jstl与el结合常见用法

JSTL Functions标签库 本书第12章的12.3节(定义和使用EL函数)介绍了EL函数的创建和使用方法.在JSTL Functions标签库中提供了一组常用的EL函数,主要用于处理字符串,在JSP中可以直接使用这些函数. 在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库: <%@taglib uri=”http://java.sun.com/jsp/jstl/functions” prefix=”fn” %>. 本章将介绍Functions标签库中常用

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

概念 EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. 作用 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象.获取数据.(某个web域 中的对象,访问javabean的属性.访问list集合.访问map集合.访问数组) 执行运算: 利用EL表达式可以在JSP页面中执行一些基本的关系运算.逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算.${user==null} 获取web开发常

第一节 EL表达式

2016年3月9日 星期三 17:00 EL表达式就是为替换<%=%>页面输出的 EL表达式和<%=%>有一丢丢区别,EL表达式只能取WEB域中的值 九个内置对象: WEB域: page/pageContext 只是在当前页面有效 request 在一次请求当中有效 A.jsp 请求转发 B.jsp B.jsp 请求转发 C.jsp session  在一次会话当中有效 application 在整个服务器当中有效 setAttribute(存值) getAttribute(取值)

EL表达式经典用法

EL表达式获取list集合length长度: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <body> 在jsp页面中不能通过${list.size}取列表长度,而是 &

EL表达式语言总结

EL介绍 Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用. 基本语法 ${表达式} 常见用法 根据其访问对象,可大体分成三类:访问数据及其各种表达式,访问EL的隐含对象以及访问环境信息的隐含对象. (1)访问数据及其各种表达式 访问数据 ${userinfo.id} //1.访问userinfo的id属性..和[]用于访问数据,二者等价. ${userinfo[id]} ${userinfo.[user-name]} //当属性名含有特殊符号时,就只能使

JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象. 那么JSP对象有哪些呢? JSP内置对象          对应的类型   备注 R

jstl,el表达式

在上一篇中,我们写了将数据传到jsp页面,在jsp页面进行展示数组,但是我们发现,在jsp页面写代码是一件很烦的事,一个循环要拆成两部分,例如for循环,在例如if语句: <%int a=22;%> <%if(a>20){%> hello world <%}else{%> world hello <%}%> 这是很烦很痛苦的的 一件事,那么怎么解决这个问题呢,这里用到了jstl技术: 再写jstl技术之前,我们先简单了解一下el表达式,el表达式要和j

jsp中的JSTL与EL表达式用法

JSTL (JSP Standard Tag Library ,JSP标准标签库) JSTL标签库分为5类:JSTL核心标签库.JSTL函数标签库.数据库标签库.I18N格式化标签库.XML标签库. JSTL的核心标签库主要包括:表达式操作.流程控制.迭代操作和URL操作.以下是JSTL常用标签的用法总结: 一.表达式操作 1.<c:out> 作用:用于显示数据的内容.语法1:没有本体内容 <c:out value="value" [escapeXml="{