JSP に組み込みたい静的ファイルがあります。もう 1 つのファイルは、JSP としてではなく、静的テキストとして扱われます。この他のファイルには、「<%」などの特殊文字が含まれています。このため、インクルードしようとするとエラーが発生します。
文字をエスケープした状態で、または静的である必要があることを理解して、このファイルを含めるにはどうすればよいですか?
<%@ include file="/FileWithSpecialCharacters.html" %>
インクルードでそれを行うことはできないと思います。
ただし、ファイルの内容をどこかに読み取ってキャッシュし、それ<%= ...%>
を挿入することでそれを行うことができます。このテーマには多くの可能なバリエーションがあります。
JSTLで試すことができます:
<c:import url="/FileWithSpecialCharacters.html" context="/other" var="doc"/>
var
この属性を使用して、<c:import>
入力が必要なタグと別のタグの間で通信できます。
<c:out value="${doc}"/>
<c:out>
、デフォルトでは、エンティティ参照を使用して、HTML または XML にとって特別な意味を持つ文字がエスケープされるようにします。
最初にリソースとして読み込み、URL エンコードして別のファイルに書き出してから、それを含めます。したがって、同等の「エンコードされた」ファイルが既に存在する場合は、最初にチェックを行う必要があると思います。そもそもなぜ特殊文字なのですか?