2

我目前正在开发一个使用 JSP 的项目,但是我们远离使用 JSTL 并改用 Java。

我知道我们可以使用 JSTL

<c:set var="body">
<jsp:include page="...jsp"/>
</c:set>

<c:out value="${body}"/>

然而,我们试图远离这种情况并使用纯 Java 实现。

无论如何我们可以刷新 JspWriter(out),将文件包含在 pageContext 中,然后将包含的内容存储到变量中?

来自 PHP 背景,我知道我们可以使用 ob_start 等,所以希望我们可以在 Java 中做同样的事情吗?

任何想法都会受到欢迎。

非常感谢

加文

4

1 回答 1

0

这是一个不寻常的问题。大多数时候,我们都在尝试摆脱 JSP 中的 java 代码。但是,如果你真的不想使用 JSTL,那么你可以试试这段代码。

<%@ page import="java.net.*,java.io.*"  %>
<%
   StringBuffer requestURL = request.getRequestURL();
   String servletPath = request.getServletPath();
   String contextURL = requestURL.substring(0, requestURL.indexOf(servletPath) + 1);
   URL url = new URL(contextURL + "otherPage.jsp");
   URLConnection conn = url.openConnection();
   BufferedReader in = new BufferedReader(new   InputStreamReader(conn.getInputStream()));
   String inputLine;
   StringBuilder sb = new StringBuilder();
   while ((inputLine = in.readLine()) != null)sb.append(inputLine);
   in.close();
   pageContext.setAttribute("otherPage", sb);
%>
${otherPage}
于 2012-09-06T15:42:20.633 回答