代码之家  ›  专栏  ›  技术社区  ›  PurpleCraw

velocity中的转义双引号

  •  0
  • PurpleCraw  · 技术社区  · 7 年前

    我使用的是velocity 1.7,模板如下。

    var jsCode = "${code}";
    eval(jsCode);
    

    如果代码为“var id=123”,则实际的js代码为

    var jsCode = "var id = 123";
    eval(jsCode);
    

    没有问题。

    然而,如果代码是“var name=“lucy”,那么实际的js代码是

    var jsCode = "var name = "lucy"";
    eval(jsCode);
    

    显然有语法错误。

    如果代码是var jsonStr=“{”id\“:1,\”name\“:\”lucy\“}”,问题就更严重了。

    代码未知,可以是任何代码。

    如何解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  0
  •   mvermand    5 年前

    速度也得到了发展 EscapeTool 在velocity工具项目中,使用不同的选项进行转义

    用于在Velocity模板中进行转义的工具。它提供了转义Velocity、Java、JavaScript、HTML、HTTP、XML和SQL输出的方法

    在您的情况下,它是javascript,所以请使用 $esc.javascript( 例子:

    $javascript->他没有说:“住手!”