在jsps中使用c:import导入的HTML中使用SSI

时间:2012-04-25 17:52:41

标签: html jsp ssi

我在htdocs区域的webserver上下文(在应用程序上下文之外)中有一堆htmls。这些htmls使用SSI来调用其他htmls。

这是问题所在: 当我使用c:import将主html调用到jsp中时,主html中的辅助htmls不会呈现/不处理。

有没有办法让主html“编译”然后返回到jsp?

JSP代码:

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

需要处理的HTML服务器端逻辑:

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

原型作为所有htmls给出,所以一切都在web上下文中,所有文件都运行正常。问题是将顶层移动到JSP并将其余层保持为HTML。 (这是一项要求)

欢迎任何解决方案/想法/想法!谢谢你的帮助!

编辑:好的,我在iFrame中获取了Header.html,因为这将启动一个新的HTTP请求(因此可以访问SSI逻辑)。

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

参数在URL中发送,我设法使用js提取控制参数。

我的查询已减少到: 如何在SSI逻辑中访问此js值“Applications”?是否可以将其设置为环境变量?这可以通过SSI逻辑拉动。我意识到Js将在SSI完成后运行,但希望有人能够提供帮助。

谢谢!

1 个答案:

答案 0 :(得分: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团队的干预来频繁地更改内容。 (例如,更改标题外观,添加新链接等)

希望这可以帮助别人以后出去。 :)

编辑:在上面的示例中 - &gt; “应用程序”将逻辑带到其他部分.. 另外,要发送名称值对:

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

您可以将它们引用为:

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

<!--#if expr=" ${QUERY_STRING} = /app=Demo/ "  -->