在我的 jsp 文件中,我通过 request.getAttribute()
从请求中提取数据。
在这个 jsp 中,我需要包含另一个 jsp。这个包含的 jsp 是否可以访问请求,或者我是否需要以某种方式转发数据?
最佳答案
它将可用:
如果您正在执行静态包含 (
<%@ include file=".." %>
),则包含文件的主体将放入doGet(..)
中生成的 servlet 的方法(每个 JSP 都转换为一个 servlet),所以逻辑上,原来的request
可以在那里访问对象。如果您正在执行动态包含 (
<jsp:include>
),RequestDispatcher.include(..)
被使用(在幕后)。如您所见,它需要ServletRequest
参数,这意味着原始请求被传递到那里。
最后,避免在 JSP 文件中使用 Java 代码。使用 EL 和 JSTL。所以而不是 request.getAttribute("x")
这将是 ${x}
.
关于jsp include,转发请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981335/