3

我有以下流程:

  1. 向用户呈现表单。
  2. 他填写表单字段,并提交给控制器,控制器将其保存到数据库
  3. 在另一个页面上,控制器从数据库中获取此记录,并将其传递给视图
  4. 视图将其捕获为 javascript 变量:var foo = '${user.bar}';

现在,如果用户在表单中输入此字符串:

I have a quote - ' - very dangerous

然后引用一直传递到数据库并返回,并导致损坏的javascript 语句:

var foo = 'I have a quote - ' - very dangerous';

逃离这个角色的最佳地点是什么,如何逃脱?我不想为每个模板的使用手动执行它,这很乏味且容易出错。

4

1 回答 1

4

数据就是数据。如果它包含一个报价,它就包含一个报价,并且它必须以这种方式存储在数据库中。使用此 String aa JavaScript 字符串文字时,您需要转义引号。

您可以使用 Apache commons-langStringEscapeUtils.escapeECMAScript()方法来执行此操作,或者您可以将 Java 对象编码为 JSON 字符串,并在 JavaScript 代码中解析 JSON 字符串。

于 2012-06-07T08:59:04.753 回答