2009-05-14 15 views

Respuesta

15

Bueno ... sí ... de una manera

String __jspName = this.getClass().getSimpleName().replaceAll("_", "."); 

estoy usando un JSP llamado pre.jsp por lo que incluyo en la parte superior de cada JSP en mi aplicación web:

<%@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 %> --> 

Además me puso esto al final de cada JSP:

<!-- END <%=__jspName %> --><% log.info("END JSP "+__jspName); %> 

Eso me da un registro consistend. Para asegurarme de que cada JSP es "correcto", tengo un cheque en mi script de compilación que solo busca las dos cadenas "/pre.jsp" y `` END <% = __ jspName`.

Nota: Hay muchos caracteres que están permitidos en nombres de archivos pero no en nombres de clase Java. Si los usa, sus nombres de clase pueden parecer extraños. Si ese es el caso, le sugiero para crear una función auxiliar estática que convierte los nombres de clases de nombres de ficheros y llamar a eso, es decir

String __jspName = MyJspUtils.getFileName(this.getClass()); 

Cada compilador JSP tiene sus propias reglas; he aquí un ejemplo: http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM

Felicitaciones vaya a Marcus Junius Brutus para señalar eso.

+0

Sí. ese fue exactamente el caso de uso que tuve ... Supongo que lo hará – elzapp

+0

Tenga en cuenta que esto solo funciona para Java 1.5 o posterior. De lo contrario, informa el error "No se puede resolver el símbolo" –

+0

@ScottChu: para Java 1.4, use 'getClass(). GetName()' en su lugar. –

0

La manera más conveniente es utilizar: <% = request.getRequestURI()%>

<% = request.getRequestURI()%> Por ejemplo, en todos mis archivos JSP, siempre lo hago poner esta línea:

archivo de representación de JSP: '% <% = request.getRequestURI()>'

esto pone una línea html realizado un comentario en el hTML representado. De esta manera, no se puede ver en el navegador, pero para fines de depuración, siempre puedo verlo inf "Ver fuente".

+1

Pero eso solo muestra el URI solicitado, no el jsp representado, si proviene de una inclusión o se procesa desde un servlet – elzapp

0

que lograron usando JSTL de la siguiente manera:

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

Y ahora, debería ver como un comentario HTML el nombre del servlet producida por el recipiente para hacer el archivo JSP, cuyo nombre está muy cerca de la Archivo fuente JSP.

0

Ésta es una solución simple copiar y pegar:

<%=this.getClass().getSimpleName().replaceFirst("_jsp","")%> 
Cuestiones relacionadas