2013-03-08 20 views
5

Jestem nowy na wiosnę z JSP jestem zasadniczo próbuje wyświetlić obraz w moim JSPobraz nie jest wyświetlany w jsp z wiosną

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
     <title>JSP-Page</title> 
    </head> 
    <body> 
     <img src="images/top.jpg"> 
    </body> 
</html> 

Wiosna-servlet xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <!-- Enable annotation driven controllers, validation etc... --> 
    <mvc:annotation-driven /> 
<mvc:resources location="/images/" mapping="/images/**"/> 

    <!-- Application controllers package --> 
    <context:component-scan base-package="net.ignou.onlinetest.controller" /> 

    <bean id="viewoseesolver" 
       class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/views/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
       destroy-method="close"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" 
          value="jdbc:mysql://localhost:3306/online_test" /> 
     <property name="username" value="root" /> 
     <property name="password" value="root" /> 
    </bean> 

    <bean id="sessionFactory" 
       class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>net.ignou.onlinetest.domain.Question</value> 
       <value>net.ignou.onlinetest.domain.Student</value> 
       <value>net.ignou.onlinetest.domain.Answer</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">none</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="multipartResolver" 
       class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    </bean> 

    <bean id="questionDao" class="net.ignou.onlinetest.dao.daoImpl.QuestionDaoImpl"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 
    <bean id="loginDao" class="net.ignou.onlinetest.dao.daoImpl.LoginDaoImpl"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 

    <bean id="answerDao" class="net.ignou.onlinetest.dao.daoImpl.AnswerDaoImpl"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 

    <bean id="service" class="net.ignou.onlinetest.service.serviceImpl.ServiceImpl"> 
     <property name="questionDao" ref="questionDao"/> 
    </bean> 

</beans> 

My Web. xml

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>Person Detail</display-name> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
<welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    </web-app> 

Używam maven.My plik obrazu znajdujący się na

Online-test \ src \ main \ webapp \ images i moja strona JSP jest w

internetowym teście \ src \ main \ webapp \ WEB-INF \ poglądy

Próbowałem też zastąpienie SRC <img src="../../images/top.jpg"> ale nie działa również próbował przenieść moje JSP i obraz do folderu Webapp bezpośrednio, ale bezużyteczne. Czy jest coś, co robię źle, jak dokładnie jest wiosenny uchwyt img?

+0

To nie jest wiosna, która obsługuje żądania obrazów, to twoja przeglądarka. Czy masz mapowanie handlarza zasobami na wiosnę? –

+0

Nie mam tylko resolver widoku .. – Lakshmi

+0

krok 1: ./images/ i tak na –

Odpowiedz

12

To, co chcesz zrobić, to dodać tę linię do konfiguracji xml kontekstu serwletu.

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

Przestrzeń nazw mvc xml jest xmlns:mvc="http://www.springframework.org/schema/mvc"

Znacznik resources zasadzie mówi Wiosna obsługiwać żądania do deklarowanej mapowania przez obsługujących nazwany plik z zadeklarowanym miejscu, zamiast iść za pośrednictwem kontrolera stosie. Mapowanie może również służyć do obsługi dowolnego zasobu: css, js, pdf, itp.

Nie potrzebujesz wielu tagów <mvc:resources>, tylko jednego z ogólnym mapowaniem, np./resources/** i listę lokalizacji rozdzielonych przecinkami, np./resources/css /,/resources/js /.

<mvc:resources mapping="/resources/**" location="/resources/images/, /resources/css/" /> 

Znacznik <resources> został wprowadzony wiosną 3.0.4, więc trzeba przynajmniej tę wersję wiosnę i na XSD. Można użyć

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd` 

Ponadto, jak mówi JB Nizet, należy odwołać swój wizerunek jako

<img src="<c:url value='/images/top.jpg'/>"/> 

na ścieżkę względną.

+0

@Lakshmi Co to jest kontekstowy kontekst Twojej aplikacji internetowej? I wstaw swoją pełną konfigurację kontekstu serwletu do twojego pytania, abyśmy mogli zobaczyć, czy wszystko jest w porządku. –

+0

dodany kod w moim pytaniu także jeszcze jedna rzecz dostaję SaxParserException na dodawanie mvc: zasoby chociaż dodałem definicję schematu to jest przyczyna Dopasowywanie symbolu wieloznacznego jest ścisłe, ale nie można znaleźć deklaracji dla elementu "mvc: resources" – Lakshmi

+0

@ Lakshmi Użyj 'http://www.springframework.org/schema/mvc http: // www.springframework.org/schema/mvc/spring-mvc.xsd'. Tag 'resources' został wprowadzony wiosną 3.0.4. W nazwie nie ma przyrostka '-3.0' w lokalizacji schematu dla' mvc'. –

4

Lokalizacja pliku JSP nie ma znaczenia, jeśli chodzi o ścieżki URL. Liczy się lokalizacja strony wyświetlana przez przeglądarkę, tj. Adres strony wyświetlanej na pasku adresu przeglądarki.

Więc jeśli adres strony jest /webapp/foo/bar/someAction.html a obraz jest /webapp/images/top.jpg, ścieżka powinna być /webapp/images/top.jpg (ścieżka bezwzględna, preferrable i jaśniejsze), lub ../../images/top.jpg (względna ścieżka, mocniej byłaby jeśli przenieść pliki lub zmienić adres URL).

Moja rada: zawsze używać ścieżek bezwzględnych i używać C JSTL za: tag url uniknąć twarde kodowania ścieżkę kontekstowe webapp:

<img src="<c:url value='/images/top.jpg'/>"/> 

Powyższa linia zawsze będzie działać.

+0

nie działa wypróbowany osobno, a także wraz z Sotirios Delimanolis rozwiązanie. – Lakshmi

+0

+1 za sugestię dobrych praktyk :) – Lakshmi

Powiązane problemy