velocity单双引号区别及转义方法
2017-02-09 00:00
1341 查看
一、区别:
#set($name = "oschina")
#set($s1 = "Welcome to $name")
#set($s2 = 'Welcome to $name')
该脚本执行后 $s1 的值是 Welcome to oschina 而 $s2 的值是 Welcome to $name
也就是说,如果是单引号,那么所包含的内容会当成一个普通的字符串进行处理,而双引号则会执行脚本。
二、单双引号的转义:
(1)最外层是用单引号包围时,双引号直接使用就可以了,两个连续的单引号表示一个单引号:#set($var2 = 'A"B''C') --> $var2 的值为 A"B'C
(2)最外层是用双引号包围时,单引号直接使用就可以了,两个连续的双引号表示一个双引号:#set($var2 = "A""B'C") --> $var2 的值为 A"B'C
(3)字符串中的变量需要被解析,则最外层用双引号包围:#set($var2 = "A""B'C_$var1") --> $var2 的值为A"B'C_test1
(4)字符串中的变量不能被解析,则最外层用单引号包围:#set($var2 = 'A"B''C_$var1') --> $var2 的值为A"B'C__$var1
如果以上4种方法仍未解决问题,则可以使用以下方法:
定义一个变量,如:#set($jmeter="'jmeter'");
在脚本中引用$jmeter即可.
#set($name = "oschina")
#set($s1 = "Welcome to $name")
#set($s2 = 'Welcome to $name')
该脚本执行后 $s1 的值是 Welcome to oschina 而 $s2 的值是 Welcome to $name
也就是说,如果是单引号,那么所包含的内容会当成一个普通的字符串进行处理,而双引号则会执行脚本。
二、单双引号的转义:
(1)最外层是用单引号包围时,双引号直接使用就可以了,两个连续的单引号表示一个单引号:#set($var2 = 'A"B''C') --> $var2 的值为 A"B'C
(2)最外层是用双引号包围时,单引号直接使用就可以了,两个连续的双引号表示一个双引号:#set($var2 = "A""B'C") --> $var2 的值为 A"B'C
(3)字符串中的变量需要被解析,则最外层用双引号包围:#set($var2 = "A""B'C_$var1") --> $var2 的值为A"B'C_test1
(4)字符串中的变量不能被解析,则最外层用单引号包围:#set($var2 = 'A"B''C_$var1') --> $var2 的值为A"B'C__$var1
如果以上4种方法仍未解决问题,则可以使用以下方法:
定义一个变量,如:#set($jmeter="'jmeter'");
在脚本中引用$jmeter即可.
相关文章推荐
- velocity 单引号和双引号转义
- velocity 单引号和双引号转义
- oracle转义单引号的方法
- UIPanGestureRecognizer类中translationInView方法和velocityInView方法有什么区别
- <input > 单引号和双引号的区别以及使用方法
- 构造器与方法的区别
- 关键字new和newInstance方法区别
- 构造器和方法的区别
- Velocity Quick Start [5] - 在模板中使用对象属性、方法
- Velocity 使用方法
- 调用oracle存储过程的例子,其参数的传递方法与SQLSERVER有区别注意区分
- VB.NET 中 ByVal 和 ByRef 传参方法的区别
- worker线程建立方法的区别
- 关于 HTTP 中的 Get 和 Post 方法的区别?
- Post和Get方法的区别
- 静态方法和类方法有什么区别!
- SQL中的字符转义方法
- 多线程中暂停与挂起方法suspend sleep join 区别及使用指导 (原创)
- 蛙蛙请教:js里的match方法和exec方法的区别,关于正则表达式的
- 为JS类定义原型方法的实现区别解答