2012-08-14 25 views
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中做同樣的事情?

任何想法都會受到歡迎。

非常感謝

加文

回答

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}