jsp:include
私は、同じ jar から tomcat の数百のコンテキストにデプロイされるjspx-files と -includes を多用する Web アプリケーションを持っています。現在、個々のインスタンスのレイアウトを変更するには、CSS を変更するか、他のファイル ディレクトリにある特定のファイルを上書きする必要があります。
webapp.jar に という名前のファイルが含まれているとします。/css/forms.css
この場合、webapp は GETtinghttp://mydomain/cust1/res/css/forms.css
がそのファイルにマップされるようにします。"override directory" を参照するように webapp が構成されている場合、この/data/cust1/
ファイルという名前のファイルがある場合/data/cust1/css/forms.css
、アプリケーション アーカイブ内のファイルからではなく、このファイルが提供されます。これは、webapp 自体によって保証されます。
過去数年間、これは非常に成功していましたが、最近、「オーバーライド」できない多かれ少なかれ静的なjspxの制限の痛みを感じています;)基本的に、それぞれのjspxファイルを「オーバーライド」できるようにしたいと思いますコンテキストごとにカスタム webapp-jar をコンパイルおよびデプロイすることなく、デプロイされたコンテキスト。(カスタムsomething:includeJsp
タグを付けても問題ありません)。
基本的に、webapp は、個々の jspx ファイルの jsp(x) コンパイラにオーバーライドを提供できる必要があります。たとえば、次の構造例を見てください。
<!-- webapp.jar:/jspx/view.jspx -->
<jsp:root ...>
<ns:customInclude src="inc/include.jspx" />
</jsp:root>
<!-- webapp.jar:/jspx/inc/include.jspx -->
<jsp:root ...>
Default-Markup from the webapp.jar
</jsp:root>
<!-- /data/cust1/jspx/inc/include.jspx -->
<jsp:root ...>
Custom markup for "cust1"
</jsp:root>
今、要求されたときに、Tomcat によってコンパイルおよび実行されhttp://.../cust1/jspx/view.jspx
たいと考えています。/data/cust1/jspx/inc/include.jspx
基本的に、実際に必要なことはすべて Tomcat のどこかで既に可能であることを知っています (ファイルを含む jspx から Java-Bytecode へのコンパイルなど) が、Tomcat/Jasper が jsp-spec に準拠していることも知っています。コードを見て、これはそれほど簡単ではないことを理解しました...
基本的に、このようなセットアップを機能させる方法を知っている人はいますか? おそらく誰かがすでにこれを解決しましたか?または、現在のアプローチに代わるものはありますか?