Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP包含动态页面_Java_Jsp_Servlets - Fatal编程技术网

Java JSP包含动态页面

Java JSP包含动态页面,java,jsp,servlets,Java,Jsp,Servlets,我的一些include页面存储在Servlet上下文中。我想在JSP中动态地包含一些页面,但我不能。 我所做的是: <jsp:include page="<%=(String)application.getAttribute("headURL")%>"/> 但它给了我一个与引号有关的错误。我已尝试将其更改为: <jsp:include page="<%=(String)application.getAttribute(\"headURL\")%>"

我的一些include页面存储在Servlet上下文中。我想在JSP中动态地包含一些页面,但我不能。 我所做的是:

<jsp:include page="<%=(String)application.getAttribute("headURL")%>"/>

但它给了我一个与引号有关的错误。我已尝试将其更改为:

<jsp:include page="<%=(String)application.getAttribute(\"headURL\")%>"/>

但这两者都不起作用

我怎么能这样做


谢谢

您可以使用表达式语言访问URL。所以你不需要逃避引用

下面是一个可以执行此操作的示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" />
    <jsp:include page="${headURL}"></jsp:include>
</body>
</html>
您只需要:

<jsp:include page="${headURL}"></jsp:include>


以及相对于网络内容的路径。

您可以使用表达式语言访问URL。所以你不需要逃避引用

下面是一个可以执行此操作的示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" />
    <jsp:include page="${headURL}"></jsp:include>
</body>
</html>
您只需要:

<jsp:include page="${headURL}"></jsp:include>

以及相对于网络内容的路径。

请执行以下操作:

<jsp:include page="${headURL}"></jsp:include>

首先,Servlet容器将在页面范围、请求范围、会话范围和应用程序范围(您的案例)中查找headURL

在调用JSP之前,必须在应用程序范围的某个位置设置headURL

但是我认为它必须是/WEB-INF/jspf/head.jspf(应用程序名称需要删除)

这样做:

<jsp:include page="${headURL}"></jsp:include>

首先,Servlet容器将在页面范围、请求范围、会话范围和应用程序范围(您的案例)中查找headURL

在调用JSP之前,必须在应用程序范围的某个位置设置headURL


但是我认为它必须是/WEB-INF/jspf/head.jspf(需要删除应用程序名)

headURL的值是多少。它是一个真实的URL还是一个JSP文件的路径?它可能是一个JSP文件的路径,如:/Project/WEB-INF/jspf/head.jspfheadURL的值是多少。它是一个真实的URL还是一个JSP文件的路径?它可能是一个JSP文件的路径,如:/Project/WEB-INF/jspf/head.jspf,但我不想在文件中写入URL“/WEB-INF/jspf/head.jspf”。我想从上下文属性中读取它。添加了澄清。但我不想在文件中写入URL“/WEB-INF/jspf/head.jspf”。我想从上下文属性中读取它。添加了澄清。