Debugging 获取源JSP文件的文件名(即使包含)
我正在尝试对包含多个嵌套include级别的JSP文件进行调试 e、 gDebugging 获取源JSP文件的文件名(即使包含),debugging,jsp,filenames,jspinclude,Debugging,Jsp,Filenames,Jspinclude,我正在尝试对包含多个嵌套include级别的JSP文件进行调试 e、 g foo.jsp bar.jsp jsp 为了帮助确定某个文件的实际包含位置,我放置了一个简单的行,以在各种文件中输出javascript警报,以便在呈现页面时捕获它 e、 g.(为便于阅读,在多行上格式化) 警报('正在访问文件:'+ “\n\n编译为:”+ “\n\n请求者:”); 因此,理想情况下,如果我将其注入baz.jsp中,我希望看到的是: 访问文件:baz.jsp 编译为:\u foo\u jsp.jav
foo.jsp
bar.jsp
jsp
为了帮助确定某个文件的实际包含位置,我放置了一个简单的行,以在各种文件中输出javascript警报,以便在呈现页面时捕获它
e、 g.(为便于阅读,在多行上格式化)
警报('正在访问文件:'+
“\n\n编译为:”+
“\n\n请求者:”);
因此,理想情况下,如果我将其注入baz.jsp
中,我希望看到的是:
访问文件:baz.jsp
编译为:\u foo\u jsp.java
请求人:foo.jsp
但是,由于
JSP指令是静态的,因此内容在翻译时包含在内,因此所有内容都变成“foo”
我真的很想不必在我添加的每个调试行中编辑/硬编码文件名
是否有人有一个聪明的解决方案来获取JSP的“真实”源文件名。。。如果它@include在另一个文件中?
转换为RequestDispatcher.include(..)
,并在请求时进行评估,而不是静态评估。所以试着使用它。我不确定,但试着使用
@Teja-不幸的是,这没有任何区别。。。我认为这只是调用@includeOk的干净标记库“包装器”,如果还有其他选项,我会尝试。但这两者的工作方式有差异,请检查herehttp://www.jguru.com/faq/view.jsp?EID=13517@include
是编译时,
是运行时。
foo.jsp
<%@ include file="bar.jsp"%>
bar.jsp
<%@ include file="baz.jsp"%>
baz.jsp
<%@ include file="boz.jsp"%>
<script type="text/javascript">
alert('Accessing File: <%=this.getName()%>' +
'\n\nCompiled as: <%=pageContext.getPage().getClass().getName()%>' +
'\n\nRequested by: <%=request.getRequestURI()%>');
</script>