Использование SSI в HTML-файлах, импортированных с помощью c: import в jsps

У меня есть куча html в контексте веб-сервера (вне контекста приложения) в области htdocs. Эти 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, поэтому все было в веб-контексте и все файлы работали нормально. Проблема заключается в перемещении верхнего слоя в JSP и сохранении остальных слоев в виде HTML. (Это требование)

Буду рад любым решениям/мыслям/идеям! Спасибо за вашу помощь!

Волна

РЕДАКТИРОВАТЬ: Хорошо, я получаю Header.html в iFrame, потому что это инициирует новый HTTP-запрос (и, таким образом, имеет доступ к логике SSI).

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

Параметры отправляются в URL-адресе, и мне удалось извлечь параметры управления с помощью js.

Мой запрос свелся к следующему: как я могу получить доступ к этому js-значению «Приложения» в логике SSI? Можно ли установить is как переменную среды? Это может быть вызвано логикой SSI. Я понимаю, что Js будет работать после завершения SSI, но надеюсь, что кто-то здесь сможет помочь.

Спасибо!


person WaveRider    schedule 25.04.2012    source источник


Ответы (1)


Спасибо, получилось.

Я получил доступ к параметру в SSI, используя переменную среды QUERY_STRING. Пример 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/ "  -->
person WaveRider    schedule 26.04.2012