gpt4 book ai didi

debugging - 获取源 JSP 文件的文件名(即使包含在内)

转载 作者:行者123 更新时间:2023-12-02 02:35:10 27 4
gpt4 key购买 nike

我正在尝试对包含多层嵌套包含的 JSP 文件进行一些调试。

例如

foo.jsp
<%@ include file="bar.jsp"%>

bar.jsp
<%@ include file="baz.jsp"%>

baz.jsp
<%@ include file="boz.jsp"%>

为了帮助确定某个文件实际包含的位置,我放置了一条简单的行来在各种文件中输出 javascript 警报,以便我可以在呈现页面时捕获它。

例如(为了便于阅读,格式化为多行)

<script type="text/javascript">
alert('Accessing File: <%=this.getName()%>' +
'\n\nCompiled as: <%=pageContext.getPage().getClass().getName()%>' +
'\n\nRequested by: <%=request.getRequestURI()%>');
</script>

因此,理想情况下,如果我将其注入(inject) baz.jsp,我想看到的是什么是:

Accessing File: baz.jsp

Compiled as: _foo__jsp.java

Requested by: foo.jsp

但是自从 <%@include%> JSP 指令是静态的 - 内容在翻译时包含在内,因此一切都变成“foo”。

我真的非常希望不必将文件名编辑/硬编码到我添加的每个调试行中。

有没有人有一个聪明的解决方案来获取 JSP 的“真实”源文件名...如果它被@included 在另一个文件中?

最佳答案

<jsp:include>转换为 RequestDispatcher.include(..)并在请求时评估,而不是静态评估。所以尝试使用它。

关于debugging - 获取源 JSP 文件的文件名(即使包含在内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2207963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com