2013-03-08 3 views
5

Я новичок весной с JSP я в основном пытаюсь отобразить изображение в моем JSPизображения не отображается в JSP с весной

<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> 

Spring-сервлет 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> 

Моего веб. 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> 

Я использую файл изображения maven.My находится в

онлайн-тест \ SRC \ главная \ WebAPP \ изображения и моя страница JSP в

онлайн-тест \ SRC \ главная \ WebApp \ WEB-INF \ просмотров

Я также попытался заменить СРК как <img src="../../images/top.jpg"> но он не работал, я также попытался переместить мой jsp и изображение в папку webapp напрямую, но не использовать. Есть ли что-то, что я делаю неправильно, как именно весна обрабатывает img-запросы?

+0

Это не весна, которая обрабатывает запросы изображений, это ваш браузер. У вас есть привязка обработчика ресурсов для весны? –

+0

Нет, у меня есть только разрешение для просмотра. – Lakshmi

+0

Шаг 1: ./images/ и так далее –

ответ

12

Что вы хотите сделать, это добавить эту строку в свою конфигурацию xml-конфигурации весеннего сервлета.

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

Пространство имен mvc XML находятся в xmlns:mvc="http://www.springframework.org/schema/mvc"

resources тега в основном говорит Spring для обработки запросов к заявленному картографированию, служа вверх с именем файла из объявленного места, вместо того, чтобы идти через стек контроллер. Отображение также может использоваться для обслуживания любого ресурса: css, js, pdf и т. Д.

Вам не нужно несколько тегов <mvc:resources>, только один с общим отображением, например./resources/** и список мест, разделенных запятыми, например./resources/css /,/resources/js /.

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

<resources> тег был введен весной 3.0.4, так что вам нужно, по крайней мере, что версия весной и в XSD. Вы можете использовать

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

Кроме того, как говорит JB Nizet, вы должны ссылаться на свой имидж

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

для относительного пути.

+0

@Lakshmi Каков корень контекста вашего веб-приложения? И поставьте полную конфигурацию контекста сервлета в свой вопрос, чтобы мы могли убедиться, что все в порядке. –

+0

добавлен код в мой вопрос и еще одна вещь, я получаю SaxParserException при добавлении mvc: resources, хотя я добавил определение схемы, это причина. Соответствующий шаблон является строгим, но для элемента «mvc: resources» не найдено декларации – Lakshmi

+0

@ Lakshmi Используйте 'http://www.springframework.org/schema/mvc http: // www.springframework.org/schema/mvc/spring-mvc.xsd'. Тег 'resources' был введен весной 3.0.4. Как и в суффиксе '-3.0' в расположении схемы для' mvc'. –

4

Местоположение файла JSP не имеет отношения к URL-адресам. Важное значение имеет расположение страницы, отображаемой вашим браузером, то есть адрес страницы, отображаемой в адресной строке вашего браузера.

Таким образом, если адрес страницы является /webapp/foo/bar/someAction.html и изображение на /webapp/images/top.jpg, путь должен быть /webapp/images/top.jpg (абсолютный путь, preferrable и понятнее) или ../../images/top.jpg (относительный путь, труднее реорганизовать при перемещении файлов или изменить URL-адреса).

Мой совет: всегда использовать абсолютные пути, и использовать с этой JSTL в: URL тег, чтобы избежать жесткого кодирования контекстный путь веб-приложение:

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

выше линии будет работать всегда.

+0

не работал, попробовал его отдельно, а также вместе с Sotirios Delimanolis решение. – Lakshmi

+0

+1 для вашего предложения хорошей практики :) – Lakshmi

Смежные вопросы