私が取り組んでいるJavaWebアプリケーションの一部として、データベースからロードされるいくつかのURIにプレフィックスを追加する必要があります。
"controller.jsp?page=list"
になります...
<a href="${legacyBaseUrl}/controller.jsp?page=list">...</a>
簡単。ただし、データベース内の一部のURIにJavascriptが含まれている場合、問題が発生します。
"javascript:window.open('controller.jsp?page=popup')"
私がしたいのは...
<a href="javascript:window.open('${legacyBaseUrl}/controller.jsp?page=popup')">...</a>
またはそれ以上...
<a href="${legacyBaseUrl}/controller.jsp?page=popup" target="_blank">...</a>
正規表現でそれを切り刻むことができることは知っていますが、データがサニタイズされたことがなく、データベースにJavascriptが存在する可能性があるため、これを単純な文字列操作の問題として扱うことには注意が必要です。
JavaでJavascriptを適切に解析し、window.openまたは他のJS関数への呼び出しを認識/抽出する(比較的)簡単な方法はありますか?
Rhinoやjavax.scriptのようなものを簡単に見てきましたが、少し迷っています。これは私のニーズにとって正しいことですか?正規表現で実際に十分でしょうか?助言がありますか?