Я пытаюсь выполнить некоторую отладку JSP-файлов, содержащих несколько уровней вложенных включений.Получить имя файла исходного JSP-файла (даже если включено)
например.
foo.jsp
<%@ include file="bar.jsp"%>
bar.jsp
<%@ include file="baz.jsp"%>
baz.jsp
<%@ include file="boz.jsp"%>
Чтобы определить, где определенный файл на самом деле включен я поставил простую линию для вывода предупреждения JavaScript Alert в различных файлах, так что я могу поймать его, когда страница отображается.
например. (Отформатированные на несколько строк для удобства чтения)
<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».
Мне действительно очень хотелось бы не редактировать/hardcode имя файла в каждую строку отладки, которую я добавляю.
У кого-нибудь есть умное решение для получения «истинного» исходного имени файла JSP ... если он включен в другой файл?
Я не уверен в этом, но попробуйте использовать '' –
@Teja - к сожалению, это не имеет никакого значения ... Я думаю, что это просто чистая библиотека тегов «wrapper» для вызова @include – scunliffe
Хорошо, Я попробую, если есть другие варианты. Но существует разница между тем, как эти обе работают, проверьте здесь: http: //www.jguru.com/faq/view.jsp? EID = 13517 –