Spring MVC - включает статические файлы / javascript, css - PullRequest
10 голосов
/ 21 декабря 2011

Я создал приложение MVC.

Я хочу включить файл js или css в jsp.

Мои статические файлы находятся под:

- webapp
        -js/jquery.js
        -WEB-INF|
                |
                 - jsp/*.jsp

Мой код для включения jquery:

<script type="text/javascript" src="<c:url value="js/jquery.js" />"></script>

и я не могу загрузить JS-файл в поле зрения.

Я вижу логи с информацией:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/pool/js/jquery.js] in DispatcherServlet with name 'appServlet'

что означает, что MVC пытается отобразить URL в файл js.

Я думаю, что что-то с моей конфигурацией, но я не знаю, что.

мой web.xml:

<?xml version="1.0" encoding="UTF-8"?>

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

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Processes application requests -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

  <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

Ответы [ 7 ]

19 голосов
/ 19 июня 2012

добавьте это к себе и измените местоположение в соответствии с вашими потребностями.

  <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>

см. Как обрабатывать статический контент в Spring MVC?

6 голосов
/ 21 декабря 2011

Измените ваше DispatcherServlet сопоставление, например:

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

Или другое, не конфликтующее url-pattern, например *.htm или /controllers/*.Помните, что теперь все ваши контроллеры будут доступны только через этот шаблон.

Теперь он перехватывает все, что есть в вашем веб-приложении, включая .js файлы, изображения и т. Д.

То же самоес hibernateFilter - вам не нужен открытый сеанс Hibernate при извлечении файлов .js, не так ли?

2 голосов
/ 17 мая 2013

Почему бы не использовать простое ядро ​​JSP?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>    
<link rel="stylesheet" type="text/css" href="<c:url value='/resources/css/bootstrap.css'/>" />
0 голосов
/ 14 мая 2014

Я просто следовал Учебник по Mkyong для размещения файлов CSS, JS, JQuery и изображений.Это работает для меня.

В servlet-context.xml

<!-- Handles HTTP GET requests for /resources/** by efficiently serving 
        up static resources in the ${webappRoot}/resources directory -->
    <resources mapping="/resources/**" location="/resources/assets/" />

В JSP импортируйте библиотеку тегов

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

и добавьте

<link rel="stylesheet" href="<c:url value='/resources/css/custom.css'/>">
0 голосов
/ 08 сентября 2013

добавьте mvc: resources в ваш конфигурационный файл (* -servlet.xml), вы можете найти, что он работает

0 голосов
/ 05 апреля 2013

Я согласен с вашим ответом. Но в файле style.css объявите URL, который относится к пути изображения.

- style.css -

.cwt-object0
{
    display: block;
    left: 2.62%;
    margin-left: -1px;
    position: absolute;
    top: 43px;
    width: 64px;
    height: 64px;
    background-image: url('/resources/images/object0.png');
    background-position: 0 0;
    background-repeat: no-repeat;
    z-index: 0;
}

Как использовать тег <spring:url></spring:url> в файле style.css для просмотра в браузере IE / Firefox

- jsp файл ---

<link href="<spring:url value="/resources/style.css"/>" rel="stylesheet" type="text/css" media="screen">
0 голосов
/ 04 апреля 2013

Используйте пружинные теги JSTL для включения внешних файлов сценариев или таблиц стилей. Сначала вы должны включить taglib в JSP следующим образом.

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>

Затем вы можете включить файл экстентального скрипта, используя

<script type="text/javascript" src="<spring:url value="/js/jquery.js"/>"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...