我想在jsp中包含js和css文件,但我无法这样做。我对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文件夹中。
答案 0 :(得分:21)
首先,您需要在dispatcher-servlet文件中声明您的资源,如下所示:
<mvc:resources mapping="/resources/**" location="/resources/folder/" />
使用url mapping / resources / **的任何请求都将直接查找/ resources / folder /.
现在在jsp文件中你需要包含你的css文件:
<link href="<c:url value="/resources/css/main.css" />" rel="stylesheet">
同样,您可以包含js文件。
希望这能解决你的问题。
答案 1 :(得分:19)
将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"/>
我希望它能奏效。
答案 2 :(得分:4)
如果你只使用spring而不是spring mvc,请采用以下方法。
将以下内容放在servlet调度程序
中<mvc:annotation-driven />
<mvc:resources mapping="/css/**" location="/WEB-INF/assets/css/"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/assets/js/"/>
正如您将注意到/ css的样式表位置,如果您没有spring mvc所需的文件夹结构,则不必位于/ resources文件夹中,就像Spring应用程序一样.Same适用于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
答案 3 :(得分:2)
您无法直接访问WEB-INF
foldere下的任何内容。当浏览器请求您的CSS文件时,他们无法在WEB-INF文件夹中看到。
尝试将您的文件css/css
文件夹放在WebContent
下。
在调度程序servlet中添加以下内容以授予访问权限,
<mvc:resources mapping="/css/**" location="/css/" />
类似于你的js文件。这个
上有一个Nice example here答案 4 :(得分:2)
将您的css / js文件放在文件夹src/main/webapp/resources
中。不要将它们放在WEB-INF
或src/main/resources
。
然后将此行添加到spring-dispatcher-servlet.xml
<mvc:resources mapping="/resources/**" location="/resources/" />
在jsp页面中包含css / js文件
<link href="<c:url value="/resources/style.css" />" rel="stylesheet">
不要忘记在你的jsp中声明taglib
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
答案 5 :(得分:0)
您需要在调度程序servelet文件中声明资源。下面是两个声明
<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**" />
答案 6 :(得分:0)
您应该将包含css和js文件的文件夹放入“ webapp / resources”中。 如果将它们放在“ src / main / java”中,则必须对其进行更改。它为我工作。
答案 7 :(得分:0)
如果您使用基于Java的注释,则可以执行以下操作:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
静态文件夹
src
│
└───main
└───java
└───resources
└───webapp
└───static
└───css
└───....