Получить текущее имя файла в JSP - PullRequest
17 голосов
/ 14 мая 2009

Есть ли способ узнать, какой JSP визуализируется в данный момент, с JSTL или Struts (или без)? как _ _ файл _ _ в Python и PHP?

Ответы [ 4 ]

17 голосов
/ 14 мая 2009

Ну ... да ... в некотором смысле

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

Слава перейти к Маркуса Юния Брута за указание на это.

0 голосов
/ 15 июля 2016

Это простое решение для копирования и вставки:

<%=this.getClass().getSimpleName().replaceFirst("_jsp","")%>
0 голосов
/ 27 августа 2014

Мне удалось использовать JSTL следующим образом:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<!-- <c:out value="${pageScope['javax.servlet.jsp.jspPage']}"></c:out> -->
...

И теперь вы должны увидеть в HTML-комментарии имя сервлета, созданного контейнером для визуализации вашего файла JSP, имя которого очень близко к исходному файлу JSP.

0 голосов
/ 29 ноября 2012

Более удобный способ - использовать: <% = request.getRequestURI ()%>

<% = request.getRequestURI ()%> Например, во всех моих jsp-файлах я всегда ставлю эту строку:

Визуализация файла JSP: '<% = request.getRequestURI ()%>' *

Это помещает закомментированную строку html в отображаемый html. Таким образом, его нельзя увидеть в браузере, но в целях отладки я всегда вижу его, когда я делаю «Просмотр источника».

...