PlayFramework2を使用していますが、HTML エスケープを適切に処理する方法が見つかりません。
テンプレート システムでは、HTML エンティティは既定でフィルター処理されます。
しかし、Backbone.jsで REST リクエストを使用すると、JSON オブジェクトがフィルタリングされません。
ObjectをStringplay.libs.Json.toJson(myModel)
に変換するために使用します。
したがって、私のコントローラーでは、応答を送信するために使用しています...しかし、ここでは、モデルの属性は保護されていません。
対処法が見つからない… return ok(Json.toJson(myModel));
2 番目の質問:
テンプレート エンジンはデフォルトで HTML エンティティをフィルター処理します。これは、生のユーザー入力をデータベースに保存する必要があることを意味します。
それは保存動作ですか?
3 番目の質問:
PlayFramework に手動で文字列をエスケープする機能はありますか? 私が見つけたものはすべて、新しい依存関係を追加する必要があります。
ありがとう !
編集: Backbone.jsテンプレート レベルで方法を見つけました: - Underscore.jsテンプレート システムmyBackboneModel.escape('attr');
の代わりに使用する オプションも含まれています:エスケープせずにレンダリングしますが、エスケープしてレンダリングします!
効率に注意してください。文字列はレンダリングごとに再エスケープされます。そのため、Backbone .create() を優先する必要があります。myBackboneModel.get('attr');
<%= attr %>
<%- attr %>