如何使用Spring MVC在JSP中包含js和CSS

ogq8wdun  于 2022-11-15  发布在  Spring
关注(0)|答案(9)|浏览(170)

我想在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文件夹。

aemubtdh

aemubtdh1#

首先,您需要在dispatcher-servlet文件中声明资源,如下所示:

<mvc:resources mapping="/resources/**" location="/resources/folder/" />

任何带有urlMap/resources/**的请求都将直接查找/resources/folder/。
现在,在jsp文件中,您需要包含css文件,如下所示:

<link href="<c:url value="/resources/css/main.css" />" rel="stylesheet">

同样地,您也可以包含js档案。
希望这能解决你的问题。

fsi0uk1n

fsi0uk1n2#

将您的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"/>

我希望它能起作用。

daupos2t

daupos2t3#

在只使用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应用程序一样。同样的道理也适用于javascript文件,字体,如果你需要它们的话。
然后,您可以在需要时访问这些资源,如下所示

<link rel="stylesheet" href="css/vendor/swiper.min.css" type="text/css" />
<link rel="stylesheet" href="css/styles.css" type="text/css" />

我相信有人会发现这是有用的,因为大多数例子是与springmvc

mbzjlibv

mbzjlibv4#

你不能直接访问WEB-INF文件夹下的任何内容。当浏览器请求你的CSS文件时,它们不能看到WEB-INF文件夹内的内容。
尝试将您的文件css/css文件夹下的WebContent
并在分派器servlet中添加以下内容以授予访问权限,

<mvc:resources mapping="/css/**" location="/css/" />

js文件也是如此。在此文件上创建Nice example here

xtfmy6hx

xtfmy6hx5#

把你的css/js文件放在src/main/webapp/resources文件夹中,不要放在WEB-INFsrc/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" %>
5cnsuln7

5cnsuln76#

你需要在分派器servelet文件中声明资源。下面是两个声明

<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**" />
k4emjkb1

k4emjkb17#

你应该把css和js文件放在“webapp/resources”中,如果你把它们放在“src/main/java”中,你必须改变它。

jdgnovmf

jdgnovmf8#

如果使用基于Java的注解,则可以执行以下操作:

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("/static/");
    }

Where静态文件夹

src  
│
└───main
    └───java
    └───resources
    └───webapp
        └───static
            └───css
            └───....
ctzwtxfj

ctzwtxfj9#

适用于希望在src/main/resources文件夹中存储js和css文件任何人的解决方案project structure image

首先,在spring-mvc-config.xml文件中声明资源,如下所示:

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

然后使用以下代码访问资源文件:

<link rel="stylesheet" href="<c:url value="/css/style.css"/>">
<script src="<c:url value="/js/script.js"/>"></script>

相关问题