JSP资源未在Spring MVC 2.5中加载

时间:2015-03-22 20:29:07

标签: spring jsp spring-mvc

我正在使用id="WebApp_ID" version="2.5"进行Spring MVC项目,以及 我有一些资源,我想包含在我的JSP文件中。 HTML包含一些.css / .js / .png和其他格式文件,它们位于“assets”文件夹中。 这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5">

    <display-name>title</display-name>
    <servlet>
        <servlet-name>spring-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

这是spring-dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jms="http://www.springframework.org/schema/jms"
       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/jms
                           http://www.springframework.org/schema/jms/spring-jms.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="basepackge" />
    <mvc:resources mapping="/assets/**" location="/WebContent/WEB-INF/assets/" />
    <mvc:annotation-driven/>
    <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>

如上所述,我有一个资产文件夹和HTML文件,它们使用资产文件夹中的.js / .css。这两个都在WEB-INF文件夹中。现在,当我在我的JSP中包含这样的HTML文件时,不会加载.png / .js / .css文件。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你的问题在于映射。您已在spring-dispatcher-servlet.xml中使用/ WEB-INF /定义了前缀,这是正确的:

<property name="prefix"> <value>/WEB-INF/</value></property>

但是,然后告诉Spring您的资产位于/ WebContent / WEB-INF / assets /文件夹中:

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

这两者的结合告诉Spring解决与/ assets / **到{prefix} {location}的任何请求映射,这将是/ WEB-INF / WebContent / WEB-INF / assets /

将您的assets / **映射中的位置更改为以下内容(删除&#39; / WebContent / WEB-INF&#39;):

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