我正在使用PlayFramework2,但找不到正确处理 HTML 转义的方法。
在模板系统中,默认情况下会过滤 HTML 实体。
但是当我将 REST 请求与Backbone.js一起使用时,我的 JSON 对象不会被过滤。
我play.libs.Json.toJson(myModel)
用来将Object转换为String。
所以,在我的控制器中,我return ok(Json.toJson(myModel));
用来发送响应......但在这里,我的模型的属性是不安全的。
我找不到处理它的方法...
第二个问题:
模板引擎默认过滤 HTML 实体,这意味着我们必须将原始用户输入存储到我们的数据库中。
这是一种保存行为吗?
第三个问题: PlayFramework
中是否有手动转义字符串的功能?我能找到的所有这些都需要添加新的依赖项。
谢谢 !
编辑:我在Backbone.js模板级别找到了一种方法: - 使用myBackboneModel.escape('attr');
而不是myBackboneModel.get('attr');
Underscore.js模板系统还包括该选项:<%= attr %>
在不转义的情况下呈现,但<%- attr %>
在转义时呈现!
请注意效率,每次渲染时都会重新转义字符串。这就是为什么应该首选 Backbone .create() 的原因。