首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP包含动态页面

JSP包含动态页面
EN

Stack Overflow用户
提问于 2016-12-14 18:33:51
回答 2查看 3.7K关注 0票数 0

我在Servlet上下文中存储了一些包含页面。我想动态地在JSP中包含一些页面,但我做不到。

代码语言:javascript
复制
<jsp:include page="<%=(String)application.getAttribute("headURL")%>"/>

但是它给了我一个与引号相关的错误。我试着把它改成:

代码语言:javascript
复制
<jsp:include page="<%=(String)application.getAttribute(\"headURL\")%>"/>

但两者都不起作用。

我怎么能这么做?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 21:31:04

就像这样:

代码语言:javascript
复制
<jsp:include page="${headURL}"></jsp:include>

首先,Servlet容器将在页面范围中查找headURL,然后查找请求作用域,然后查找会话作用域,然后查找应用程序作用域(您的情况)

在调用headURL之前,必须将其设置为应用程序作用域的某个位置。

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

票数 1
EN

Stack Overflow用户

发布于 2016-12-14 21:17:05

可以使用表达式语言访问URL。所以你不需要转义引号。

下面是一个您可以这样做的示例:

代码语言:javascript
复制
<%@ 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

代码语言:javascript
复制
<c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" />

你只需要:

代码语言:javascript
复制
<jsp:include page="${headURL}"></jsp:include>

以及相对于WebContent的路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41149695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档