我正在尝试对包含多级嵌套包含的 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>
因此,理想情况下,如果我将其注入,我想看到baz.jsp
的是:
访问文件:baz.jsp
编译为:_foo__jsp.java
请求者:foo.jsp
然而,由于<%@include%>
JSP 指令是静态的 - 内容在翻译时包含,因此所有内容都变为“ foo ”。
我真的很想不必在我添加的每个调试行中编辑/硬编码文件名。
有没有人有一个聪明的解决方案来获取 JSP 的“真实”源文件名......如果它是 @included 在另一个文件中?