0

htdocs領域のWebサーバーコンテキスト(アプリケーションコンテキストの外)にたくさんのhtmlがあります。これらのhtmlは、SSIを使用して他のhtmlを呼び出します。

問題は次のとおりです。c:importを使用してメインhtmlをjspに呼び出すと、メインhtml内のセカンダリhtmlがレンダリングされない/処理されません。

メインのhtmlを「コンパイル」してからjspに戻す方法はありますか?

JSPコード:

<c:import url="<%=/folder/Header.html%>" 

処理する必要のあるHTMLサーバー側のロジック:

<!--#include virtual="/abc/xyz.html" -->
<!--#if expr='"$Category" = "someCategory"' -->
<!--#echo var="pageTitle" -->

プロトタイプはすべてのhtmlとして提供されたため、すべてがWebコンテキストにあり、すべてのファイルが正常に機能しました。問題は、最上位レイヤーをJSPに移動し、残りのレイヤーをHTMLとして保持することです。(それは要件です)

どんな解決策/思考/アイデアも歓迎されます!ご協力ありがとうございます!

編集:わかりました。新しいHTTPリクエストを開始する(したがってSSIロジックにアクセスできる)ため、iFrameでHeader.htmlを取得しています。

<iframe id="testSSI" src ="http://somesite.com/subfolder/testssi_1.html?pageTitle=Applications" frameborder="0" width="800px" height="300"></iframe>

パラメーターはURLで送信され、jsを使用して制御パラメーターを抽出することができました。

私のクエリはこれに減少しました:SSIロジックでこのjs値「アプリケーション」にアクセスするにはどうすればよいですか?isを環境変数として設定することは可能ですか?それはSSIロジックによって引っ張られる可能性があります。SSIが完了した後にJsが実行されることは理解していますが、ここの誰かが助けてくれることを願っています。

ありがとう!

4

1 に答える 1

0

ありがとう、それを成し遂げました。

QUERY_STRING環境変数を使用してSSIのパラメーターにアクセスしました。HTML呼び出しの例:

http://somesite.com/subfolder/testssi_1.html?Applications

値を取得する方法の例:

<!--#set var="pageTitle" value="$QUERY_STRING" -->
<!--#if expr=" ${pageTitle} = Program "  -->
  do something
<!--#else -->
  do something else
<!--#endif --> 

ここでの目的:JAVAフレームワークを使用します。しかし、マーケティングは、コンテンツを別のプロセスで編集できるようにしたいと考えていました。こうすることで、jsp/javaチームの介入なしにコンテンツを頻繁に変更できます。(例:ヘッダーのルックアンドフィールの変更、新しいリンクの追加など)

これが後で誰かを助けることを願っています。:)

編集:上記の例では、->「アプリケーション」はロジックをelseセクションに移動します。さらに、名前と値のペアを送信するには:

http://somesite.com/subfolder/testssi_1.html?name=Applications&app=Demo

あなたはそれらを次のように参照することができます:

<!--#if expr=" ${QUERY_STRING} = /name=Applications/ "  -->

<!--#if expr=" ${QUERY_STRING} = /app=Demo/ "  -->
于 2012-04-26T20:00:36.637 に答える