2012-05-08 5 views
7

E 'possibile dire a un contenitore di servlet Java EE standard di interpretare e eseguire il rendering di un file come JSP anche se non ha un'estensione .jsp?È possibile eseguire il rendering di un file senza estensione .jsp come JSP?

Dire che ho un file chiamato foo.xyz nella directory principale del mio WAR. Questo file contiene alcune logiche jstl come ci si aspetterebbe in un file .jsp. Se richiedo http://myserver/myapp/foo.xyz vedrò il codice letterale da quel file visualizzato come testo. C'è un modo per configurare l'app Web in modo tale da rendere il file utilizzando l'interprete JSP senza modificare l'estensione dei file?

Si prega di non chiedere perché vorrei fare questo. I vincoli sono complicati.

risposta

5

Aggiungi una mappatura servlet JSP su tale pattern URL a web.xml del tuo webapp.

<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.xyz</url-pattern> 
</servlet-mapping> 

Si noti che questo presuppone che proprio servlet JSP di servletcontainer è registrato con il nome servlet di jsp che è il nome servlet standard de facto del servlet JSP. Verificare la voce <servlet> all'interno dello stesso web.xml del servlettaintainer. Nel caso, per esempio, di Tomcat, questo è il file /conf/web.xml nella sua cartella di installazione.

+0

Questa soluzione funziona su Tomcat ma non su Websphere. Penso che questo sia un hack e non uno * standard di fatto *. – LaurentG

+0

@LaurentG: la risposta lo ha già trattato. Basta usare lo stesso '' come usa Websphere. – BalusC

+0

Da quando sviluppo con Tomcat e la distribuzione su Websphere, penso che la soluzione più generica che ho proposto sia migliore (non voglio gestire due web.xml). Ma per la maggior parte dei casi, anche la tua soluzione funziona bene. – LaurentG

8

è possibile aggiungere la seguente configurazione nel vostro web.xml per rendere i file che terminano con .xyz beeing elaborati come JSP:

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.xyz</url-pattern> 
    </jsp-property-group> 
</jsp-config> 

Questa soluzione sta lavorando con Tomcat e WebSphere. E probabilmente con qualsiasi contenitore di server compatibile con JEE.