2012-05-08 24 views
7

¿Es posible indicarle a un contenedor de servlet Java EE estándar que interprete y presente un archivo como JSP, incluso si no tiene la extensión .jsp?¿Se puede renderizar un archivo sin una extensión .jsp como JSP?

Digamos que tengo un archivo llamado foo.xyz en el directorio raíz de mi WAR. Este archivo contiene cierta lógica jstl como cabría esperar en un archivo .jsp. Si solicito http://myserver/myapp/foo.xyz voy a ver el código literal de ese archivo representado como texto. ¿Hay alguna manera de configurar la aplicación web de forma que represente el archivo utilizando el intérprete JSP sin cambiar la extensión de los archivos?

Por favor, no pregunte por qué me gustaría hacer esto. Las restricciones son complicadas.

Respuesta

5

Agregue un mapeo de servlets JSP en ese patrón de URL a su webapp's web.xml.

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

Tenga en cuenta que esto supone que el propio servlet JSP de servletcontainer se ha registrado con el nombre de servlet jsp que es el nombre del servlet estándar de facto del servlet JSP. Verifique la entrada <servlet> dentro del propio servletcontainer web.xml para estar seguro. En el caso de, por ejemplo, Tomcat, ese es el archivo /conf/web.xml en su carpeta de instalación.

+0

Esta solución funciona en Tomcat pero no en Websphere. Creo que esto es un truco y no un * estándar de facto *. – LaurentG

+0

@LaurentG: la respuesta ya ha cubierto eso. Simplemente use el mismo '' como Websphere está usando. – BalusC

+0

Como estoy desarrollando con Tomcat e implementando en Websphere, creo que la solución más genérica que propuse es mejor (no quiero administrar dos web.xml). Pero para el caso más común, tu solución funciona bien también. – LaurentG

8

Usted puede agregar la siguiente configuración en el web.xml para hacer los archivos que terminan con .xyz beeing procesa como JSP:

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

Esta solución está trabajando con Tomcat y Websphere. Y probablemente con cualquier contenedor de servidor compatible con JEE.

Cuestiones relacionadas