Spring MVC - включить статические файлы /javascript, css
Я создал приложение MVC.
Я хочу включить js или файл css в jsp.
Мои статические файлы ar под:
- 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 файлом.
Я думаю, что есть что-то с моей конфигурацией, но я не знаю, что.
my 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>
Ответы
Ответ 1
Измените отображение DispatcherServlet
, например:
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
Или какой-либо другой, не конфликтующий url-pattern
как *.htm
или /controllers/*
. Помните, что отныне все ваши контроллеры будут доступны только через этот шаблон.
Теперь он перехватывает все в вашем веб-приложении, включая .js
файлы, изображения и т.д.
То же самое с hibernateFilter
- вам не нужен открытый сеанс Hibernate при извлечении файлов .js
, не так ли?
Ответ 2
добавьте это, чтобы вы подтвердили и изменили местоположение в соответствии с вашими потребностями.
<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>
см. этот Как обрабатывать статический контент в Spring MVC?
Ответ 3
Почему бы не использовать простой ядро 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'/>" />
Ответ 4
Используйте теги spring JSTL для включения внешних файлов script или таблиц стилей.
Сначала вы должны включить taglib в JSP следующим образом.
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
Затем вы можете включить файл extenal script, используя
<script type="text/javascript" src="<spring:url value="/js/jquery.js"/>"></script>
Ответ 5
Я согласен с вашим ответом. Но в файле 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">
Ответ 6
добавить mvc: ресурсы в ваш файл конфигурации (* - servlet.xml), вы можете найти его работы
Ответ 7
Я просто следил за Учебник 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'/>">