我有一些存储在Servlet上下文中的包含页面。我想动态地在JSP中包含一些页面,但我不能。 我所做的是:
<jsp:include page="<%=(String)application.getAttribute("headURL")%>"/>
但是它给了我一个与引号有关的错误。我试图将其更改为:
<jsp:include page="<%=(String)application.getAttribute(\"headURL\")%>"/>
但它既不起作用。
我怎么能这样做?
谢谢!
答案 0 :(得分:1)
您可以使用表达式语言来访问该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>
将包含位于/Project/WebContent/WEB-INF/jspf/head.jspf
的文件。
编辑:
此行仅用于测试。我设置了一个上下文属性headURL
:
<c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" />
您只需要:
<jsp:include page="${headURL}"></jsp:include>
相对于WebContent的路径。
答案 1 :(得分:1)
这样做:
a {
-webkit-transition: width 2s; /* Safari */
transition: width 2s;
}
首先,Servlet容器将在页面范围中查找headURL,然后在“请求范围”,“会话范围”和“应用程序范围(您的情况)”中查找
在调用JSP之前,必须将headURL设置在Application范围的某个位置。
但我认为必须 /WEB-INF/jspf/head.jspf (需要删除应用名称)