Struts2のプロパティタグescapeHtmlが有効にならないのですが、何か見落としている点があるでしょうか?
Struts2のエスケープ機能はHTMLインジェクション攻撃への対策です。ユーザ入力をページに表示する際に、ユーザが不正なHTMLを入力するのを防ぐために、エスケープ機能を使って入力をエスケープします。
「escapeHtml」属性が機能しない理由は以下の通りです。
- struts.xml内のデフォルトのインターセプタスタックが有効化され、インターセプタの順序が正しく設定されていることを確認してください。
<interceptors>
<interceptor-stack name="defaultStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="params">
<param name="excludeParams">.*</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
- プロパティタグは正しく使用されていません。JSP ページでプロパティタグが正しく使用されており、escapeHtml プロパティが正しく設定されていることを確認してください。例:
<s:property value="content" escapeHtml="true"/>
- 値が空かnullの場合:escapeHtmlプロパティは値が空またはnullの場合は機能しません。値が空ではなく、HTMLコードを含むことを確認してください。
上記が問題なければ依然動作しない場合は、バージョン互換性の問題や、その他の設定に問題がある可能性があります。Struts2のバージョンを更新するか、その他の関連設定が正しいか確認してみてください。