Как включить js и CSS в JSP с помощью spring MVC
Я хочу включить js и css файлы в jsp, но я не могу этого сделать. Я новичок в концепции spring MVC. В течение долгого времени я работал над этой же темой.
Моя индексная страница похожа на эту
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/style.css"/>
<script type="text/javascript" src="${pageContext.request.contextPath}/LoginPageScrip.js">
</script>
<style type="text/css">
body {
background-image: url("LoginPageBackgroundImage.jpg");
}
</style>
</head>
<body >
<h6>Please login in google Chrome</h6>
<h1 align="center">Welcome to my Twitter Clone</h1>
<div class="m" style="margin-left: 401px; margin-top: 70px;">
<form method="post" action="LoginForExistingUser" onsubmit="return Validate(this);">
<fieldset>
<legend align="center">Login</legend>
<div class="a">
<div class="l">User Name</div>
<div class="r">
<INPUT type="text" name="userName">
</div>
</div>
<div class="a">
<div class="l">Password</div>
<div class="r">
<INPUT type="password" name="password">
</div>
</div>
<div class="a">
<div class="r">
<INPUT class="button" type="submit" name="submit"
value="Login">
</div>
</div>
<i align="center" style="margin-left: 183px;">New User? <a href="signup.html"><u>Signup</u></a></i>
</fieldset>
</form>
</div>
</body>
</html>
И мой spring -dispatcher-servlet.xml выглядит следующим образом.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.csc.student" />
<mvc:annotation-driven/>
<!--<bean id="HandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />-->
<!-- <bean name="/welcome.html" class ="csc.csc.helloController.HelloController" /> -->
<bean id="viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/</value>
</property>
<property name ="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Мой контроллер такой.
package com.csc.student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class StudentInfoController {
@RequestMapping(value = "/indexPage.html", method = RequestMethod.GET)
public ModelAndView getAdmissionFrom() {
ModelAndView model = new ModelAndView("indexPage");
return model;
}
}
Может кто-нибудь помочь мне в этом? Я изо всех сил стараюсь, но у меня нет никакого решения. Я сохранил файл js и css в папке WEB-INF.
Ответы
Ответ 1
Сначала вам нужно объявить свои ресурсы в файле диспетчера-сервлета следующим образом:
<mvc:resources mapping="/resources/**" location="/resources/folder/" />
Любой запрос с отображением url/resources/** будет напрямую искать /resources/folder/.
Теперь в jsp файле вам нужно включить свой файл css следующим образом:
<link href="<c:url value="/resources/css/main.css" />" rel="stylesheet">
Аналогичным образом вы можете включить js файлы.
Надеюсь, что это решает вашу проблему.
Ответ 2
Поставьте вам style.css непосредственно в папку webapp/css не в WEB-INF
затем добавьте следующий код в свой spring -dispatcher-servlet.xml
<mvc:resources mapping="/css/**" location="/css/" />
а затем используйте следующий код на странице jsp
<link rel="stylesheet" type="text/css" href="css/style.css"/>
Я надеюсь, что это сработает
Ответ 3
В ситуации, когда вы используете только spring, а не spring mvc, выполните следующий подход.
Поместите в диспетчер сервлетов
следующее:
<mvc:annotation-driven />
<mvc:resources mapping="/css/**" location="/WEB-INF/assets/css/"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/assets/js/"/>
Как вы заметили /css для расположения таблицы стилей, не обязательно должна быть папка /resources, если у вас нет структуры папок, необходимой для spring mvc, как в случае с приложением spring. применяется к файлам javascript, шрифтам, если они вам нужны и т.д.
Затем вы можете обращаться к ресурсам так, как вам нужно.
<link rel="stylesheet" href="css/vendor/swiper.min.css" type="text/css" />
<link rel="stylesheet" href="css/styles.css" type="text/css" />
Я уверен, что кто-то найдет это полезным, поскольку большинство примеров с spring mvc
Ответ 4
Вы не можете напрямую получить доступ к чему-либо в папке WEB-INF
. Когда браузеры запрашивают ваш файл CSS, они не видны внутри папки WEB-INF.
Попробуйте поместить файлы css/css
в папку WebContent
.
И добавьте следующее в сервлет диспетчера для предоставления доступа,
<mvc:resources mapping="/css/**" location="/css/" />
аналогично для ваших js файлов. A Приятный пример здесь на этом
Ответ 5
Поместите ваши файлы css/js в папку src/main/webapp/resources
. Не помещайте их в WEB-INF
или src/main/resources
.
Затем добавьте эту строку в spring -dispatcher-servlet.xml
<mvc:resources mapping="/resources/**" location="/resources/" />
Включить файлы css/js в jsp-страницах
<link href="<c:url value="/resources/style.css" />" rel="stylesheet">
Не забудьте объявить taglib в jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Ответ 6
вам нужно объявить ресурсы в файле диспетчера sendlet.below есть два объявления
<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**" />