SO内で何時間もグーグル検索と検索を行った後、ついにあなたに質問する必要がある場所にたどり着きました! :)
状況は次のとおりです。Web サービスは CDATA でデータを配信します。このデータは解析され、モデルに入れられます。Spring MVC を使用して、JSP ファイル内のモデルにアクセスして作成します....ここで要点です... JSON! 聞くな、歴史的に!;-)
さて、どういうわけか誰かが複数の (バック) スラッシュをタイトル プロパティに入れるという素晴らしいアイデアを思いつきました。getTitle() メソッドは文字列 "/// Glasvegas \\" を返します。JSON (JSP 内で作成された) で JavaSCript eval() を実行して JavaScript Json オブジェクトを取得する場合、これはもちろん機能しません。バックスラッシュをコメントとして解釈するだけで、Json が無効になります。apache.common と springframework の escapeHtml() メソッドを使用しようとしましたが、どちらもバックスラッシュを無視し、他のすべての特殊文字を正しくエンコードします。
次に、独自のメソッドを作成しようとしました。
public static String escapeHTML(String string) {
String foreslash="\";
String regex="\\\\";
System.out.println(string.replaceAll(regex,foreslash));
string.replaceAll(regex,foreslash);
return string;
}
コンソール出力では、文字列は正しく置き換えられていますが、リターンでブレークしてデバッガーで変数「文字列」を調べると、「/// Glasvegas \\」のままです。生成された JSP も同様です。
だから、私はここでちょっと迷っています。
よろしく、ASP