将包含的文件输出存储到变量中

时间:2012-08-14 10:25:50

标签: java jstl

我目前正在开发一个使用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中做同样的事情吗?

任何想法都会受到欢迎。

非常感谢

加文

1 个答案:

答案 0 :(得分: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}