3

次のフローがあります。

  1. ユーザーにフォームが表示されます。
  2. 彼はフォームフィールドに入力し、コントローラーに送信します。コントローラーはこれをDBに保持します。
  3. 別のページで、コントローラーはDBからこのレコードを取得し、ビューに渡します
  4. ビューはそれをjavascript変数としてキャプチャします。var foo = '${user.bar}';

ここで、ユーザーがこの文字列を次の形式で入力すると、次のようになります。

I have a quote - ' - very dangerous

次に、引用符がDBに渡されて返され、JavaScriptステートメントが破損します。

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

このキャラクターから逃れるのに最適な場所はどこですか、そしてどのように?テンプレートを使用するたびに手動で行うのは望ましくありません。面倒でエラーが発生しやすくなります。

4

1 に答える 1

4

データはデータです。引用符が含まれている場合は、引用符が含まれているため、データベースにそのように保存する必要があります。この文字列aaJavaScript文字列リテラルを使用する場合は、引用符をエスケープする必要があります。

これを行うには、 Apache commons-langStringEscapeUtils.escapeECMAScript()メソッドを使用するか、JavaオブジェクトをJSON文字列にエンコードして、JavaScriptコードでJSON文字列を解析することができます。

于 2012-06-07T08:59:04.753 に答える