2009-05-14 10 views

Répondre

15

Eh bien ... oui ... de manière

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

J'utilise un JSP appelé pre.jsp pour ce que j'inclus en haut de chaque page JSP dans mon webapp:

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

de plus, je mis cela à la fin de chaque JSP:

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

cela me donne un journal de consistend. Pour m'assurer que chaque JSP est "correcte", j'ai une vérification dans mon script de construction qui cherche simplement les deux chaînes "/pre.jsp" et `` END <% = __ jspName`.

Remarque: De nombreux caractères sont autorisés dans les noms de fichiers mais pas dans les noms de classes Java. Si vous les utilisez, vos noms de classe peuvent sembler étranges. Si tel est le cas, je vous suggère de créer une fonction d'aide statique qui convertit les noms de classe aux noms de fichiers et appeler, à savoir

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

Chaque compilateur JSP a ses propres règles; Voici un exemple: http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM

Les nuances vont à Marcus Junius Brutus pour le signaler.

+0

Ouais. c'était exactement l'usecase que j'avais ... Je suppose que ça va faire – elzapp

+0

Notez que cela ne fonctionne que pour Java 1.5 ou plus tard. Sinon, il signale l'erreur "Impossible de résoudre le symbole" –

+0

@ScottChu: Pour Java 1.4, utilisez 'getClass(). GetName()' à la place. –

0

La façon plus pratique est d'utiliser: <% = request.getRequestURI()%>

<% = request.getRequestURI()%> Par exemple, dans tous mes fichiers jsp, je fais toujours mettre cette ligne:

rendu JSP fichier: '<% = request.getRequestURI()%>'

cela met une ligne html pour le actualité commentée html rendu. De cette façon, on ne peut pas le voir dans le navigateur, mais à des fins de débogage, je peux toujours le voir inf je fais "View source".

+1

Mais cela montre seulement l'URI demandé, pas le jsp rendu, s'il provient d'un include ou rendu à partir d'un servlet – elzapp

0

je réussis à l'aide JSTL comme suit:

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

Et maintenant, vous devriez voir comme HTML commentaire le nom du servlet produit par le conteneur pour rendre votre fichier JSP, dont le nom est très proche de la Fichier source JSP.

0

Ceci est une solution simple copier-coller:

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