- 浏览: 102884 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
kingcs:
IndexSearcher 没有关闭。 searcher.cl ...
lucene第一步---6.分页 -
xyheritrix:
看了后我没一点点刺激,你的3个例子对我根本说明不了问题,在我看 ...
从优秀迈向卓越 -- 我的设计模式学习感悟 -
zl0828:
这个小知识值得分享,我支持lz分享
jquery ui 1.7版中的datepicker大小問題
一 JSTL EL表达式语言简介
EL 是从 JavaScript 脚本语言得到启发的一种表达式语言,它借鉴了 JavaScript 多类型转换无关性的特点。在使用 EL 从 scope 中得到参数时可以自动转换类型,因此对于类型的限制更加宽松。 Web 服务器对于 request 请求参数通常会以 String 类型来发送,在得到时使用的 Java 语言脚本就应该是 request.getParameter(“XXX”) ,这样的话,对于实际应用还必须进行强制类型转换。而 EL 就将用户从这种类型转换的繁琐工作脱离出来,允许用户直接使用 EL 表达式取得的值,而不用关心它是什么类型。
EL表达式总是用大括号括起,而且前面有一个美元符($)前缀:${expression}。
EL 提供.和[]两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。
例如:
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用[]来做,而.无法做到动态取值。
例如:
${sessionScope.user[data]}中data 是一个变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
例 1 :简单 EL 表达式
<% @ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
${samplue + 1} <br>
</body>
</html>
这个示例将在 JSP 页面显示为“ 1 ”, EL 表达式必须以“ ${XXX} ”来表示,其中“ XXX ”部分就是具体表达式内容,“ ${} ”将这个表达式内容包含在其中作为 EL 表达式的定义。本示例可以在满足 JSP2.0 规范的任何 Web 应用服务器中使用。
二 EL表达式的隐含对象
一个 EL 表达式包含变量和操作符两个内容。任何存在于 JSP 作用范围的 JavaBean 都可以被转化成 EL 表达式来使用,它所包含的默认变量如下:
1. 与范围有关的隐含对象: pageScope 、 requestScope 、 sessionScope 、 applicationScope
例 2 :使用 sessionScope 变量的 EL 表达式
<% request.getSession().setAttribute("samplue", new Integer(10));%>
${sessionScope.samplue}
取得保存在 Session 中参数的 sessionScope 变量的 EL 表达式,“ . ”是 property 访问操作符,在这里表示从 Session 中取得“键”为“ samplue ”的参数,并显示出来。显示结果为“ 10 ”。
2 .与输入有关的隐含对象: param 、 paramValues
这两个默认变量包含请求参数的集合, param 表明请求包含的参数为单一控件, paramValues 表明请求包含的参数为控件数组。下面看一个简单示例 3 :
例 3 :提交请求的页面和接受的页面
<% @ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="SampleJsp.jsp">
<input type="text" name="samplue" value="10">
<input type="text" name="samplue" value="11">
<input type="text" name="samplue" value="12">
<input type="text" name="sampleSinglue" value="Singlue">
<input type="submit" value="Submit">
</form>
</body>
</html>
在这个页面中定义了两组控件,控件名为“ samplue ”的是一套控件数组,控件名为“ sampleSinglue ”的是单一控件,通过递交将请求参数传送到 SampleJsp.jsp 。
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
${paramValues.samplue[2]} <br>
${param.sampleSinglue} <br>
</body>
</html>
这是请求转发到的页面,通过 EL 表达式的 paramValues 变量得到控件数组中最后一个控件的递交参数,通过 EL 表达式的 param 变量得到单一控件的递交参数。控件数组参数的 EL 表达式使用“ [] ”来指定数组下标。本示例将显示控件数组中最后一个控件的值“ 12 ”和单一控件的值“ Singlue ”。
3 .隐含对象 header 、 headerValues
这两个默认变量包含请求参数头部信息的集合, header 变量表示单一头部信息, headerValues 则表示数组型的头部信息。如:${header["User-Agent"]}
4 .隐含对象 cookie
包含所有请求的 cookie 集合,集合中的每个对象对应 javax.servlet.http.Cookie 。如:${cookie.userCountry}
5 .隐含对象 initParam
包含所有应用程序初始化参数的集合。
6 .隐含对象 pageContext
等价于 page 环境类 javax.servlet.jsp.PageContext 的实例,用来提供访问不同的请求参数。
pageContext取得其他有关用户要求或页面的详细信息。
${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串
${pageContext.request.contextPath} 服务的web application 的名称
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的IP 地址
${pageContext.session.new} 判断session 是否为新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息
11 个隐含对象几乎包含了 Web 应用的所有基本操作,若一个表达式不使用这些变量而直接使用参数名,那么就采用就近原则。该表达式将使用最近取得的参数值。
三.EL表达式的操作符
EL表达式中还有许多操作符可以帮助完成各种所需的操作,之前的示例中“.”、“[]”就是其中的两个,下面将用表9.1来展示所有操作符及它们各自的功能。
操作符 功能和作用
.
访问一个 bean 属性或者 Map entry
[]
访问一个数组或者链表元素
()
对子表达式分组,用来改变赋值顺序
? :
条件语句,比如:条件 ?ifTrue:ifFalse
如果条件为真,表达式值为前者,反之为后者
+
数学运算符,加操作
-
数学运算符,减操作或者对一个值取反
*
数学运算符,乘操作
/ 或 div
数学运算符,除操作
% 或 mod
数学运算符,模操作 ( 取余 )
== 或 eq
逻辑运算符,判断符号左右两端是否相等,如果相等返回 true ,否则返回 false
!= 或 ne
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回 true ,否则返回 false
< 或 lt
逻辑运算符,判断符号左边是否小于右边,如果小于返回 true ,否则返回 false
> 或 gt
逻辑运算符,判断符号左边是否大于右边,如果大于返回 true ,否则返回 false
<= 或 le
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回 true ,否则返回 false
>= 或 ge
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回 true ,否则返回 false
&& 或 and
逻辑运算符,与操作赋。如果左右两边同为 true 返回 true ,否则返回 false
|| 或 or
逻辑运算符,或操作赋。如果左右两边有任何一边为 true 返回 true ,否则返回 false
! 或 not
逻辑运算符,非操作赋。如果对 true 取运算返回 false ,否则返回 true
empty
用来对一个空变量值进行判断 : null 、一个空 String 、空数组、 空 Map 、没有条目的 Collection 集合
func(args)
调用方法 , func 是方法名, args 是参数,可以没有,或者有一个、多个参数 . 参数间用逗号隔开
1.算术运算符有五个:+、-、*或$、/或div、%或mod
2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符有三个:&&或and、||或or、!或not
4.其它运算符有三个:Empty运算符、条件运算符、()运算符
例:${empty param.name}、${A?B:C}、${A*(B+C)}
EL函数(functions)。
语法:ns:function( arg1, arg2, arg3 …. argN)
其中ns为前置名称(prefix),它必须和taglib 指令的前置名称一置
这些操作符都是极其有用的,下面通过几个示例来演示它们的使用方法:
例 4 :几组操作符的示例
${pageScope.samplue + 12} <br> // 显示 12
${(pageScope.samplue + 12)/3} <br> // 显示 4.0
${(pageScope.samplue + 12) /3==4} <br> // 显示 true
${(pageScope.samplue + 12) /3>=5} <br> // 显示 false
<input type="text" name="sample1" value="${pageScope.samplue + 10}"> // 显示值为 10 的 Text 控件
可以看到,对于这些示例,程序设计者完全无需管理它们的类型转换,在表达式内部都已经处理了。有了 EL 表达式,在 JSP 页面的编程变得更灵活,也更容易。
关于el表达式不起作用的解决方案
tomcat5.0的版本, 使用了低版本,只求稳定。
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
2.4版本默认启用el表达式,如果使用2.5版本,默认el表达式是关闭的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
那么对应2.5的web.xml --> jsp页面里应该增加<%@ page isELIgnored="false"%>
一句话,凡是部署描述文件遵循Servlet2.4规范的WEB应用,EL表达式的计算默认是启用的,而未遵循的,则EL表达式的计算默认是禁用的。
所以解决方案还可以是:将web.xml中的DTD(文档类型定义)改问2.4的版本
或者显示在页面中表明是否启用或者关闭EL表达式:
<%@ page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言.
EL 是从 JavaScript 脚本语言得到启发的一种表达式语言,它借鉴了 JavaScript 多类型转换无关性的特点。在使用 EL 从 scope 中得到参数时可以自动转换类型,因此对于类型的限制更加宽松。 Web 服务器对于 request 请求参数通常会以 String 类型来发送,在得到时使用的 Java 语言脚本就应该是 request.getParameter(“XXX”) ,这样的话,对于实际应用还必须进行强制类型转换。而 EL 就将用户从这种类型转换的繁琐工作脱离出来,允许用户直接使用 EL 表达式取得的值,而不用关心它是什么类型。
EL表达式总是用大括号括起,而且前面有一个美元符($)前缀:${expression}。
EL 提供.和[]两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。
例如:
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用[]来做,而.无法做到动态取值。
例如:
${sessionScope.user[data]}中data 是一个变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
例 1 :简单 EL 表达式
<% @ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
${samplue + 1} <br>
</body>
</html>
这个示例将在 JSP 页面显示为“ 1 ”, EL 表达式必须以“ ${XXX} ”来表示,其中“ XXX ”部分就是具体表达式内容,“ ${} ”将这个表达式内容包含在其中作为 EL 表达式的定义。本示例可以在满足 JSP2.0 规范的任何 Web 应用服务器中使用。
二 EL表达式的隐含对象
一个 EL 表达式包含变量和操作符两个内容。任何存在于 JSP 作用范围的 JavaBean 都可以被转化成 EL 表达式来使用,它所包含的默认变量如下:
1. 与范围有关的隐含对象: pageScope 、 requestScope 、 sessionScope 、 applicationScope
例 2 :使用 sessionScope 变量的 EL 表达式
<% request.getSession().setAttribute("samplue", new Integer(10));%>
${sessionScope.samplue}
取得保存在 Session 中参数的 sessionScope 变量的 EL 表达式,“ . ”是 property 访问操作符,在这里表示从 Session 中取得“键”为“ samplue ”的参数,并显示出来。显示结果为“ 10 ”。
2 .与输入有关的隐含对象: param 、 paramValues
这两个默认变量包含请求参数的集合, param 表明请求包含的参数为单一控件, paramValues 表明请求包含的参数为控件数组。下面看一个简单示例 3 :
例 3 :提交请求的页面和接受的页面
<% @ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="SampleJsp.jsp">
<input type="text" name="samplue" value="10">
<input type="text" name="samplue" value="11">
<input type="text" name="samplue" value="12">
<input type="text" name="sampleSinglue" value="Singlue">
<input type="submit" value="Submit">
</form>
</body>
</html>
在这个页面中定义了两组控件,控件名为“ samplue ”的是一套控件数组,控件名为“ sampleSinglue ”的是单一控件,通过递交将请求参数传送到 SampleJsp.jsp 。
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
${paramValues.samplue[2]} <br>
${param.sampleSinglue} <br>
</body>
</html>
这是请求转发到的页面,通过 EL 表达式的 paramValues 变量得到控件数组中最后一个控件的递交参数,通过 EL 表达式的 param 变量得到单一控件的递交参数。控件数组参数的 EL 表达式使用“ [] ”来指定数组下标。本示例将显示控件数组中最后一个控件的值“ 12 ”和单一控件的值“ Singlue ”。
3 .隐含对象 header 、 headerValues
这两个默认变量包含请求参数头部信息的集合, header 变量表示单一头部信息, headerValues 则表示数组型的头部信息。如:${header["User-Agent"]}
4 .隐含对象 cookie
包含所有请求的 cookie 集合,集合中的每个对象对应 javax.servlet.http.Cookie 。如:${cookie.userCountry}
5 .隐含对象 initParam
包含所有应用程序初始化参数的集合。
6 .隐含对象 pageContext
等价于 page 环境类 javax.servlet.jsp.PageContext 的实例,用来提供访问不同的请求参数。
pageContext取得其他有关用户要求或页面的详细信息。
${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串
${pageContext.request.contextPath} 服务的web application 的名称
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的IP 地址
${pageContext.session.new} 判断session 是否为新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息
11 个隐含对象几乎包含了 Web 应用的所有基本操作,若一个表达式不使用这些变量而直接使用参数名,那么就采用就近原则。该表达式将使用最近取得的参数值。
三.EL表达式的操作符
EL表达式中还有许多操作符可以帮助完成各种所需的操作,之前的示例中“.”、“[]”就是其中的两个,下面将用表9.1来展示所有操作符及它们各自的功能。
操作符 功能和作用
.
访问一个 bean 属性或者 Map entry
[]
访问一个数组或者链表元素
()
对子表达式分组,用来改变赋值顺序
? :
条件语句,比如:条件 ?ifTrue:ifFalse
如果条件为真,表达式值为前者,反之为后者
+
数学运算符,加操作
-
数学运算符,减操作或者对一个值取反
*
数学运算符,乘操作
/ 或 div
数学运算符,除操作
% 或 mod
数学运算符,模操作 ( 取余 )
== 或 eq
逻辑运算符,判断符号左右两端是否相等,如果相等返回 true ,否则返回 false
!= 或 ne
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回 true ,否则返回 false
< 或 lt
逻辑运算符,判断符号左边是否小于右边,如果小于返回 true ,否则返回 false
> 或 gt
逻辑运算符,判断符号左边是否大于右边,如果大于返回 true ,否则返回 false
<= 或 le
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回 true ,否则返回 false
>= 或 ge
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回 true ,否则返回 false
&& 或 and
逻辑运算符,与操作赋。如果左右两边同为 true 返回 true ,否则返回 false
|| 或 or
逻辑运算符,或操作赋。如果左右两边有任何一边为 true 返回 true ,否则返回 false
! 或 not
逻辑运算符,非操作赋。如果对 true 取运算返回 false ,否则返回 true
empty
用来对一个空变量值进行判断 : null 、一个空 String 、空数组、 空 Map 、没有条目的 Collection 集合
func(args)
调用方法 , func 是方法名, args 是参数,可以没有,或者有一个、多个参数 . 参数间用逗号隔开
1.算术运算符有五个:+、-、*或$、/或div、%或mod
2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符有三个:&&或and、||或or、!或not
4.其它运算符有三个:Empty运算符、条件运算符、()运算符
例:${empty param.name}、${A?B:C}、${A*(B+C)}
EL函数(functions)。
语法:ns:function( arg1, arg2, arg3 …. argN)
其中ns为前置名称(prefix),它必须和taglib 指令的前置名称一置
这些操作符都是极其有用的,下面通过几个示例来演示它们的使用方法:
例 4 :几组操作符的示例
${pageScope.samplue + 12} <br> // 显示 12
${(pageScope.samplue + 12)/3} <br> // 显示 4.0
${(pageScope.samplue + 12) /3==4} <br> // 显示 true
${(pageScope.samplue + 12) /3>=5} <br> // 显示 false
<input type="text" name="sample1" value="${pageScope.samplue + 10}"> // 显示值为 10 的 Text 控件
可以看到,对于这些示例,程序设计者完全无需管理它们的类型转换,在表达式内部都已经处理了。有了 EL 表达式,在 JSP 页面的编程变得更灵活,也更容易。
关于el表达式不起作用的解决方案
tomcat5.0的版本, 使用了低版本,只求稳定。
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
2.4版本默认启用el表达式,如果使用2.5版本,默认el表达式是关闭的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
那么对应2.5的web.xml --> jsp页面里应该增加<%@ page isELIgnored="false"%>
一句话,凡是部署描述文件遵循Servlet2.4规范的WEB应用,EL表达式的计算默认是启用的,而未遵循的,则EL表达式的计算默认是禁用的。
所以解决方案还可以是:将web.xml中的DTD(文档类型定义)改问2.4的版本
或者显示在页面中表明是否启用或者关闭EL表达式:
<%@ page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言.
发表评论
-
Jquery UI Samples
2011-11-03 16:00 711http://www.jsbug.com/lab/ -
Spring配置常见错误整理
2011-11-02 00:42 1267最近在配置Spring的时候经常出现各种错误,从网上摘取做个总 ... -
中文繁体unicode 范围
2011-10-26 10:34 3250String temp = "我是XXXkevin很 ... -
用java在linux下修改文件权限
2011-09-20 13:00 1594String cmdStrs[] = new String[] ... -
禁止浏览器图片缓存
2011-08-08 13:16 1061开发过程中,会因为网页缓存的原因,造成一些数据无法刷新,这里是 ... -
理解ThreadLocal
2011-07-17 09:41 716ThreadLocal是什么 早在JDK 1.2的版本中就提 ... -
Struts2 学习
2011-05-26 17:32 660http://www.iteye.com/wiki/strut ... -
0.1+0.2=0.30000000000000004问题的探究
2011-05-11 17:06 890今天花了一整天的时间 ... -
Tomcat编译和调试
2011-04-19 10:14 1268咱们分析的是 tomcat 6 1. 下载Tomcat6.0 ... -
Java 路径
2011-03-14 11:03 754Java路径问题最终解决方案 ... -
JSP 编码
2011-03-14 09:37 675首先,说说JSP/Servlet中 ... -
JSON 基础教程
2011-03-04 12:15 737在异步应用程序中发送 ... -
深入理解JavaScript闭包(closure)
2011-03-04 11:07 612最近在网上查阅了不少J ... -
CSS框架 27款
2011-02-24 11:06 646http://www.iteye.com/news/20054 ... -
PL/SQL连接ORACLE
2010-12-14 00:56 1098PLSQL终端是需要先安装or ... -
Java EE 中的Web项目的文件结构
2010-11-15 12:40 1232Java EE 中的Web项目的文件结构 按照 Java E ... -
Java路径简单的分可以分为两种:绝对路径和相对路径
2010-11-15 12:12 1169Java路径简单的分可以分为两种:绝对路径和相对路径。下面介绍 ... -
java中相对路径,绝对路径问题总结
2010-11-15 11:17 657java中相对路径,绝对路径问题总结 ...
相关推荐
读者注意:这套视频语音讲解中...06EL表达式 07自定义JSP标签 08JSP标准标签库 09使用技术浅析 10Log4j的应用 11JUint 12Ant的应用 13CVS的应用 14留言管理系统 15电子相册管理系统 16网上商店JpetStore 17传智博客BBS
2. JSP:掌握JSP基本语法,使用EL表达式和JSTL标签库进行页面动态渲染。 3. JDBC:了解数据库连接池,学会使用PreparedStatement执行SQL语句,处理结果集。 4. MVC模式:解释Model-View-Controller架构,以及如何在...
通过`request`对象,我们可以获取到丰富的错误信息,比如错误状态码,可以使用`request.getAttribute("javax.servlet.error.status_code")`或者EL表达式`${requestScope["javax.servlet.error.status_code"]}`来获取...
它的表达式需要结合 in 来使用,类似 item in items 的形式。 1.1 遍历数组 html: <li v-for=n>{{n.title}} js: [removed] var app = new Vue({ el: '#app', data: { news: [ {title: '被智能手机...
例如,如果需要反转一个字符串,我们可以定义一个计算属性来实现这个功能,而不是直接在模板中写复杂的JavaScript表达式。 ```javascript var vm = new Vue({ el: '#example', data: { message: 'Hello' }, ...