我们可以替换servlet上下文对象并尝试使用服务器端包含的catch块吗?

时间:2012-01-17 07:11:10

标签: jsp ssi

我在JSP中有以下代码片段:我们可以用Server Side include替换它吗? 具体来说,调用Servlet Context对象和try-catch块。

请告知:

提前致谢。

<%
                String includeURL = "";
                if (getServletConfig().getServletContext().getServletContextName().startsWith("internal")) {
                    includeURL = "/test/index.inc";
                } else {
                    includeURL = "/testone/index.inc";
                }
                try {
                    %><jsp:include page="<%= includeURL %>" flush="true" /><%
                } catch (Throwable e) {
                    out.println("<!-- Could not include file - ERROR: " + e.toString() + " -->");
                }
            %>

2 个答案:

答案 0 :(得分:0)

是的,你可以做到。您只需要记住,如果index.inc不是普通的HTML文档,但包含JSP标记和scriptlet等,它将无法工作。它们不会被SSI评估。

答案 1 :(得分:0)

我们是否可以使用以下SSI代码替换相关JSP代码片段中的初始部分?<!--#if expr="getServletConfig().getServletContext().getServletContextName().startsWith("internal")" --> <!--#set var="includeURL" value="/ctx/hub_inside/support/index.inc" --> <!--#else --> <!--#set var="includeURL" value="/ctx//EMEA/main/Intranet/Inside/hub_inside/support/STAGING/index.inc" --> <!--#endif -->