Archivos auxiliares en proyecto Web con Gradle

Buenas noches,

Acabo de crear un proyecto web con la herramienta Gradle, por fin ya hice funcionar el patron MVC, pero ahora que quiero dar un poco de estilo a mis pantallas web en jsp, no encuentro como enlazar la etiqueta <img src=""> con mis archivos jpg. Mis dudas son: ¿en donde debo de colocar los archivos para que puedan ser reconocidos por el explorador como http://mipagina:puerto/proyecto/imagenes/imagen.jpg? y supongo que sabiendo donde colocar la carpeta de imágenes únicamente deberá colocar el la etiqueta src="imagenes/imagen.jpg.

Gracias por su ayuda.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

tree

¿Cuál es la estructura de tu proyecto? Puedes utilizar el comando tree (disponible en Windows y Linux, en Mac hay que instalarlo).

Imagen de adrianaaae

Existe

Existe una carpeta que se genera al crear el proyecto en Netbeans (ya que utilizo ese IDE), se llama "web" en ella generalmente se egeneran los jsp, por lo que alla tienes que colocar los archivos que se requieran cargar (ese sería tu raiz), podrias crear una carpeta (por ejemplo: images) y pues ya pondrias

<img src="images/nombre_de_tu_imagen.extensión" alt="No pude cargar el archivo">

Espero te sirva.

Saludos

Imagen de adrianaaae

Existe

Existe una carpeta que se genera al crear el proyecto en Netbeans (ya que utilizo ese IDE), se llama "web" en ella generalmente se generan los jsp, por lo que alla tienes que colocar los archivos que se requieran cargar (ese sería tu raiz), podrias crear una carpeta (por ejemplo: images) y pues ya pondrias

<img src="images/nombre_de_tu_imagen.extensión" alt="No pude cargar el archivo">

Espero te sirva.

Saludos

Imagen de francisco.santiagoj

La estructura del proyecto

Gracias por su ayuda, miren la estructura del proyecto es:

Proyecto
- src
-- main
--- java
---- com
----- mipagina
------ misclases
--- resources
---- META-INF
--- webapp
---- resources
---- WEB-INF
----- classes
----- paginas
----- web.xml
--t est
-build.gradle

Ya intente poner las imágenes en la raíz de la aplicación, en la carpeta src/main/webapp/resources, en src/main/resources y no obtengo nada.

Imagen de francisco.santiagoj

IDE

Olvide comentarles que utilizo eclipse como ide para este proyecto.

URL's

 

  • Si colocas tus imágenes en src/main/webapp/resources, entonces tu etiqueta img:

    <img src="${pageContext.request.contextPath}/resources/imagen.jpg" />
  • Si colocas tus imágenes en src/main/webapp/imagenes, entonces tu etiqueta img:

    <img src="${pageContext.request.contextPath}/imagenes/imagen.jpg" />

Más detalles en esta excelente respuesta de Bauke Luitsen Scholtz en Stack Overflow.

~~~

Imagen de francisco.santiagoj

@jpaul

Leí bien el post de Stack Overflow, y lo trate de implementar de las dos formas EL y JSTL; pero con ninguna de las dos funciona. con EL marca error javax.servlet.jsp.JspException cannot be resolved to a type. ¿ que puede ser?

Saludos,

Imagen de adrianaaae

La raiz

La raíz de tus páginas (por decirlo de alguna manera), es donde se encuentra tu página .jsp (por ej. index.jsp ).
En pocas palabras allá debes de crear tu carpeta "imagenes" y en el html cargarlo como:

<img src="imagenes/imagen.jpg" alt="No pude cargar el archivo">

Espero te sirva.

Saludos

Imagen de francisco.santiagoj

@adrianaaae

El patrón de mi aplicación es MVC con Spring, por lo tanto las paginas JSP no están en el directorio como lo comentas, las paginas están ocultas.

Gradle – Spring MVC

 

¿Con Spring MVC? ¡Ah! Humm... ¿ya viste el ejemplo de Yong Mook Kim (aka @mkyong): Gradle – Spring MVC Web Project Example?

La línea:

<mvc:resources mapping="/resources/**" location="/resources/" />

configura el acceso a los recursos estáticos. Si colocas tus imágenes en src/main/webapp/resources (que coincide con el valor del atributo location), entonces tu etiqueta img con EL quedaría así:

<img src="${pageContext.request.contextPath}/resources/imagen.jpg" />

Respecto al error que mencionas, ¿estás usando Thymeleaf?

~~~