1

我有一个 maven 项目,我想在项目上使用 css,但它只显示 index.jsp 页面,没有任何图像和 css。它可以依赖什么?

我将我的 css 和图像放在资源下,这是我的 servlet-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:mvc="http://www.springframework.org/schema/mvc"
             xsi:schemaLocation="
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <mvc:annotation-driven />

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

    <mvc:default-servlet-handler />

    <beans:bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

    <beans:import resource="controllers.xml" />

</beans:beans>

请帮忙?

4

2 回答 2

6

对我来说,这听起来不像是 Maven 问题。我想您可能已经将 Spring 示例资源映射与标准 Maven 资源文件夹混淆了。在这种情况下,您的图像应该相对于 src/main/webapp 文件夹(即 src/main/webapp/resources 而不是 src/main/resources)。Maven 本身并没有对 src/main/webapp/resources 文件夹做任何特别的事情。

更新

为了清楚起见,webapp 下的文件夹“resources”可以命名为任何名称。为了减少混淆,我将我的重命名为“webstuff”。例如,我有

src/main/webapp/webstuff
src/main/webapp/webstuff/css/base.css
src/main/webapp/webstuff/images/globe.png

现在,在我的 Spring 配置中,我将其更改为如下所示:

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

最后一部分是我如何在我的 jsp 中引用 css 和图像:

<html>
    <link rel="stylesheet" href="webstuff/css/default.css" type="text/css">
    <body>
    <h1>Hello World!</h1>
    <img src="webstuff/images/globe.png">
    </body>
</html>
于 2012-06-22T21:33:53.287 回答
0

您是在 Eclipse 中将项目创建为动态 Web 应用程序,还是使用 Maven 原型然后将项目导入 Eclipse?因为,几天前我也面临同样的问题。这是因为您拥有的文件夹结构未在您的 Web 应用程序中正确映射。我建议您这样做,尝试从目标文件夹中提取战争并检查文件(jsp、htlm 和 java)是否位于您在 servlet-context 中提到的正确位置。如果它在战争中是正确的,那么它应该可以正常工作。如果某些文件放错了位置,那么您将面临问题。

您可以使用 maven 的 war 插件配置文件应该在 .war 中执行的路径。看看这个了解更多。

按照这个教程来看看谁来创建一个 web 项目(也适用于 spring)并尝试一下。

于 2012-06-23T01:50:56.020 回答