フィルター内の HTML 応答で、特定の文字をそれぞれの HTML エンティティに置き換えたいと考えています。文字には、、、が含ま<
れ>
ます&
。replaceAll()
HTMLタグの一部であっても、すべての文字を置き換えるため、使用できません。
そうするための最良のアプローチは何ですか?
フィルター内の HTML 応答で、特定の文字をそれぞれの HTML エンティティに置き換えたいと考えています。文字には、、、が含ま<
れ>
ます&
。replaceAll()
HTMLタグの一部であっても、すべての文字を置き換えるため、使用できません。
そうするための最良のアプローチは何ですか?
Java から Apache Commons Lang (legacy v2) を試すことができます StringEscapeUtils.escapeHtml()
。または commons-lang3: を使用しStringEscapeUtils.escapeHtml4()
ます。
これは& such にも変換à
されることに注意してください。à
JSTL などのテクノロジーを使用している場合は、 を使用して値を出力するだけで、<c:out value="${myObject.property}"/>
自動的にエスケープされます。
属性escapeXml
はtrue
デフォルトです。
escapeXml
<,>,&,',"
-結果の文字列内の文字を対応する文字エンティティ コードに変換する必要があるかどうかを決定します。デフォルト値はtrue
です。