Ну ... да ... в некотором смысле
String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");
Я использую JSP с именем pre.jsp
для того, что я включаю в верхней части каждого JSP в своем веб-приложении:
<%@page import="org.apache.log4j.Logger"%>
<%
String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");
Logger log = Logger.getLogger(this.getClass().getName());
log.info("BEGIN JSP "+__jspName);
%>
<!-- BEGIN <%=__jspName %> -->
Плюс я ставлю это в конце каждого JSP:
<!-- END <%=__jspName %> --><% log.info("END JSP "+__jspName); %>
Это дает мне последовательный журнал. Чтобы убедиться, что каждый JSP является «правильным», в моем скрипте сборки есть проверка, которая просто ищет две строки "/pre.jsp"
и `` END <% = __jspName`. </p>
Примечание: есть много символов, которые разрешены в именах файлов, но не в именах классов Java. Если вы используете их, ваши имена классов могут выглядеть странно. Если это так, я предлагаю создать статическую вспомогательную функцию, которая преобразует имена классов в имена файлов и вызывает их, т.е.
String __jspName = MyJspUtils.getFileName(this.getClass());
Каждый JSP-компилятор имеет свои собственные правила; Вот один пример: http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM
Слава перейти к Маркуса Юния Брута за указание на это.