我目前正在开发一个使用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 :(得分: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}