C'è un modo per ottenere quale JSP è attualmente sottoposto a rendering, con JSTL o Struts (o senza)? come _ _ file _ _ in Python e PHP?Ottieni nome file corrente in JSP
risposta
Beh ... sì ... in un modo
String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");
sto usando un JSP chiamato pre.jsp
per ciò che io includo nella parte superiore di ogni JSP nella mia 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 %> -->
Inoltre ho messo questo alla fine di ogni JSP:
<!-- END <%=__jspName %> --><% log.info("END JSP "+__jspName); %>
questo mi dà un registro consistend. Per assicurarsi che ogni JSP sia "corretto", ho un controllo nel mio script di build che cerca solo le due stringhe "/pre.jsp"
e `` END <% = __ jspName`.
Nota: esistono numerosi caratteri consentiti nei nomi di file ma non nei nomi di classi Java. Se li usi, i nomi delle tue classi potrebbero sembrare strani. Se questo è il caso, vi consiglio di creare una funzione di supporto statica che converte i nomi della classe di nomi di file e chiamare tale, vale a dire
String __jspName = MyJspUtils.getFileName(this.getClass());
Ogni compilatore JSP ha le sue regole; ecco un esempio: http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM
I festeggiamenti vanno a Marcus Junius Brutus per indicarlo.
Il modo più conveniente è quello di utilizzare: <% = request.getRequestURI()%>
<% = request.getRequestURI()%> Per esempio, in tutti i miei file jsp, faccio sempre mettere questa riga:
renderizzazione dei file JSP: '<% = request.getRequestURI()%>'
questo pone una linea di codice HTML commentato per il rendering HTML. In questo modo non si può vederlo nel browser, ma per scopi di debug, posso sempre vederlo inf. "Visualizza sorgente".
Ma questo mostra solo l'URI richiesto, non il jsp reso, se proviene da una inclusione o il rendering da un servlet – elzapp
sono riuscito usando JSTL come segue:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<!-- <c:out value="${pageScope['javax.servlet.jsp.jspPage']}"></c:out> -->
...
E ora, si dovrebbe vedere come HTML commentare il nome del servlet prodotta dal contenitore per rendere il file JSP, il cui nome è molto vicino al File sorgente JSP.
Si tratta di una soluzione semplice copia-incolla:
<%=this.getClass().getSimpleName().replaceFirst("_jsp","")%>
- 1. Ottieni il nome dell'utente corrente
- 2. Ottieni il nome dell'ambiente corrente
- 3. Ottieni nome utente corrente in Julia (Linux)
- 4. Come recuperare il nome della pagina corrente in JSP?
- 5. Ottieni il nome file corrente con i parametri URL
- 6. Ottieni il nome editore dell'applicazione ClickOnce corrente?
- 7. PHP Ottieni il nome della directory corrente
- 8. Ottieni il nome del metodo corrente
- 9. Ottieni il nome della funzione VBA corrente
- 10. Ottieni il nome del metodo corrente
- 11. Ottieni il nome dell'applicazione attiva corrente
- 12. Ottieni cartella principale del file corrente PHP
- 13. Ottieni il nome utente corrente di Windows in Silverlight
- 14. Come stampare la data corrente in JSP?
- 15. Ottieni il nome host della richiesta corrente in node.js Express
- 16. Ottieni il nome della funzione corrente in modalità rigorosa
- 17. Ottieni nome utente corrente in C++ su Windows
- 18. Ottieni il nome del metodo corrente in esecuzione
- 19. Ottieni il nome del processo corrente (eseguibile) in Vai?
- 20. Ottieni il nome del test corrente in Xunit
- 21. Node/Multer Ottieni nome file
- 22. Ottieni nome file da percorso stringa?
- 23. Ottieni lingua corrente in CultureInfo
- 24. Ottieni l'URL corrente in vb.net
- 25. Ottieni nome file usando xsl
- 26. Eclipse: ottieni la posizione del file corrente?
- 27. Ottieni il nome utente Windows dell'utente corrente usando php?
- 28. Ottieni il nome del file in esecuzione in Java?
- 29. Ottieni l'indirizzo IP del client in JSP
- 30. Ottieni percorso cartella corrente
Già. quello era esattamente il caso d'uso che avevo ... Suppongo che lo farà – elzapp
Si noti che questo funziona solo per Java 1.5 o successivo. In caso contrario, segnala l'errore "Impossibile risolvere il simbolo" –
@ScottChu: per Java 1.4, utilizzare invece 'getClass(). GetName()'. –