tutorial servlet prácticos ejemplos ejemplo directivas java jsp struts jstl

java - servlet - jsp tutorial



Obtener el nombre de archivo actual en JSP (4)

Bueno ... si ... en cierto modo

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

Estoy usando un JSP llamado pre.jsp para eso que pre.jsp 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 pongo esto al final de cada JSP:

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

Eso me da un log consistente. Para asegurarme de que cada JSP sea "correcto", "/pre.jsp" 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 los nombres de archivo pero no en los nombres de clase de Java. Si los usas, los nombres de tus clases pueden parecer raros. Si ese es el caso, sugiero crear una función auxiliar estática que convierta los nombres de clase en nombres de archivo y llame a eso, es decir,

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

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

Felicitaciones a Marcus Junius Brutus por señalarlo.

¿Hay una manera de obtener qué JSP se representa actualmente, con JSTL o Struts (o sin)? como _ _ archivo _ _ en Python y PHP?


Esta es una solución simple de copiar y pegar:

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


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

<% = request.getRequestURI ()%> Por ejemplo, en todos mis archivos jsp, siempre pongo esta línea:

Procesamiento de archivo JSP: ''<% = request.getRequestURI ()%>''

Esto coloca una línea html comentada en el html representado. De esta manera, uno no puede verlo en el navegador, pero para propósitos de depuración, siempre puedo verlo si hago "Ver código fuente".


Logré usar 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, debe ver como comentario HTML el nombre del servlet producido por el contenedor para representar su archivo JSP, cuyo nombre está muy cerca del archivo fuente JSP.