2010-11-12 17 views
14

Ho usato Netbeans per creare un'app di Spring MVC 3.0. Ho un controller semplice e una vista JSP. La vista JSP viene visualizzata correttamente ad eccezione di un'immagine che non esegue il rendering. La mia struttura di directory simile a questo: alt textDove posizionare immagini/CSS nell'app di spring-mvc?

Nella mia pagina Home.jsp, l'immagine che non rendono viene fatto riferimento in questo modo:

<img src="Images/face.png" /> 

Ho verificato che face.png è nella Directory delle immagini. Allora perché non appare nel browser? In Spring MVC, dove devo posizionare i file referenziati dalle viste JSP, come immagini, CSS, JS, ecc.?

risposta

0

Credo che possa solo fare riferimento a immagini/css nella cartella WEB-INF. Spostare la cartella Images su WEB-INF dovrebbe risolvere il problema.

+0

Che non ha funzionato. Anche il tentativo di accedere direttamente all'immagine (http: // localhost: 8080/myapp/Images/face.png) non ha funzionato. Devo configurare mvc a molla per abilitare l'accesso alle immagini? – Sajee

+0

Vedi questa domanda: http: // stackoverflow.com/domande/553.749/primavera-MVC-webapp-dove-a-store-percorsi-to-comuni-immagini. Potrebbe aiutare. –

+0

No, questo mi ha confuso ancora di più. :) Quello che sto cercando di fare dovrebbe essere facile senza ricorrere ai temi. Forse ho un pattern URL che sta bloccando l'accesso a qualsiasi cosa tranne i controller? – Sajee

3

sono stato in grado di trovare una risposta praticabile qui: How to handle static content in Spring MVC?

Il problema era che il mio Spring MVC dispatcher servlet è stata intercettando le chiamate a risorse statiche. Così ho mappato il servlet predefinito di Tomcat per gestire le risorse statiche.

3

qualsiasi elemento nella cartella Web-Inf sarà contrassegnato come privato e non può essere accessibile dal browser. Si suppone di spostare la cartella dell'immagine all'esterno di Web-Inf e sotto webapp.

36

Modificare il file web.xml:

<servlet> 
    <servlet-name>spring-servlet</servlet-name> 
    <servlet-class>com.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>spring-servlet</servlet-name> 
    <url-pattern>/<url-pattern> 
</servlet-mapping> 

e aggiungere sotto la configurazione dopo che è:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.gif</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.jpg</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.png</url-pattern> 
</servlet-mapping> 

Se si dispone di una soluzione migliore si prega di condividere con me.

+0

funziona come un fascino. !! man.Thanks –

+0

@RaviKhakhkhar Puoi accettare questa risposta se ha funzionato per te? – Drahakar

+0

@Drahakar: non ho fatto questa domanda. Quindi, naturalmente, non ho il diritto di accettare questa risposta. Ho già votato. –

1

immagine Insieme nel file JSP in Spring MVC quadro per:

Si può semplicemente impostare l'immagine per seguenti operazioni: Cartella

Fase 1. immagini posto nel risorse

Fase 2. immagine write percorso come: src = "$ {pageContext.request.contextPath} /resources/images/logo.jpg"

0

Penso che si possano mettere tutti i dati statici come immagine, css, javascript ecc fuori dal WEB- INF e poi chiamalo modo normale :)

Problemi correlati