2013-04-05 5 views
2

Я разрабатываю приложение Spring MVC, и у меня есть моя страница входа (login.jsp), которая должна вызывать скрипты и связывать некоторые файлы css. Проблема в том, что приложения не запускают скрипты.Запуск файлов сценариев и использование файлов Css с Spring MVC?

вот мои файлы;

web.xml

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/ressources/js/*</url-pattern> 
</servlet-mapping> 

Моя весна диспетчеру MVC файл:

<mvc:resources mapping="/resources/**" location="/ressources/" /> 
    <mvc:resources mapping="/scripts/**" location="/ressources/js/" /> 

    <bean  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 
    <bean 
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
    </bean> 
     <bean 
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
      </property> 
      <property name="suffix"> 
      <value>.jsp</value> 
      </property> 
     </bean> 
    </beans> 

Login.jsp вызова файлов скриптов и CSS файлы

<% String init="<c:url value='/resources/js/init.js'>";%> 
<% String grid="<c:url value='/resources/css/5grid/init.js?use=mobile,desktop,1000px&mobileUI=1&mobileUI.theme=none&mobileUI.titleBarOverlaid=1&viewport_is1000px=1060'>";%> 
<% String query="<c:url value='/resources/js/jquery-1.8.3.min.js'>";%> 
<% String drop="<c:url value='/resources/js/jquery.dropotron-1.2.js'>";%> 

<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,900,300italic" rel="stylesheet" /> 
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> 
<script src="<%=grid%>"></script> 
<script src="<%=drop%>"></script> 
<script src="<%=init%>"></script> 
<noscript> 
    <link rel="stylesheet" href="<c:url value='/resources/css/5grid/core.css' />"/> 
    <link rel="stylesheet" href="<c:url value='/resources/css/5grid/core-desktop.css' />"/> 
    <link rel="stylesheet" href="<c:url value='/resources/css/5grid/core-1200px.css' />"/> 
    <link rel="stylesheet" href="<c:url value='/resources/css/5grid/core-noscript.css' />"/> 
    <link rel="stylesheet" href="<c:url value='/resources/css/style.css' />"/> 
    <link rel="stylesheet" href="<c:url value='/resources/css/style-desktop.css' />"/> 
</noscript> 

При отображении страницы имеются никакие стили не использовали только отображаемые компоненты, так как нет скриптов и нет файла css.

У кого-нибудь есть решение моей проблемы ?? Thank You

ответ

1

В ваших ресурсных сопоставлениях у вас есть ресурсы с ошибками. Он не содержит двух символов s.

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

в противоположность:

<mvc:resources mapping="/resources/**" location="/ressources/" /> 
    <mvc:resources mapping="/scripts/**" location="/ressources/js/" /> 

Обратите внимание, что при загрузке вашего CSS и сценарии они находятся в каталоге resource в отличие от ressources

<link rel="stylesheet" href="<c:url value='/resources/css/style-desktop.css' />"/> 

<% String drop="<c:url value='/resources/js/jquery.dropotron-1.2.js'>";%> 

Диспетчерский сервлет будет пытаться обрабатывать этот запрос, а не пропускать их.

Также измените отображение сервлетов диспетчера в файле web.xml.

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

Mapping к / заставит диспетчер обрабатывать все запросы, в то время как отображение на /* заставит диспетчер обрабатывать все запросы, которые не отображены на ресурс.

+0

нет это не проблема :(изображения показываются, и они связаны с тем же отображением проблема с загрузкой файлов .js анс CSS файлы. Спасибо –

+0

I думаю, что эта проблема определенно будет проблемой, поскольку сценарии находятся под каталогом ресурсов, и диспетчер не разрешает прохождение запросов. У меня есть еще одна догадка, но вы можете опубликовать свой файл в формате web.xml? –

+0

Да, я опубликую его как ответ –

0

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 

id="WebApp_ID" version="2.5"> 
    <display-name>Spring MVC Application</display-name> 
    <servlet> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <servlet-class> 
        org.springframework.web.servlet.DispatcherServlet 
       </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <listener> 
    <listener-class> 
        org.springframework.web.context.ContextLoaderListener 
       </listener-class> 
    </listener> 
    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
      /WEB-INF/mvc-dispatcher-servlet.xml, 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 
    <filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class> 
        org.springframework.web.filter.DelegatingFilterProxy 
       </filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

<servlet> 
<servlet-name>Resource Servlet</servlet-name> 
<servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Resource Servlet</servlet-name> 
<url-pattern>/resources/*</url-pattern> 
</servlet-mapping> 
</web-app> 
Смежные вопросы