找不到带有URI的HTTP请求的映射 - Servlet浏览所有文件

时间:2014-09-12 05:45:04

标签: java spring

我是Spring&的新手。请求映射,我目前有一个maven web项目设置,似乎无法正确处理我的初始请求

web.xml我有:

<servlet>
    <servlet-name>Example</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/Example-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Example</servlet-name>
    <url-pattern>/</url-pattern> 
</servlet-mapping>

我的Example-servlet.xml

<context:component-scan base-package="com.example.controller" /> //right package

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

最后我的ExampleController

@Controller
@RequestMapping("/")
public class ExampleController {

    @RequestMapping(value = "/start")
    public String start() {
        System.out.println("Example Starting...");
    }

}

我的example目录结构:

enter image description here

然而,当我导航到 localhost:8080 / example / 时,我的页面丢失了所有的CSS样式,几乎所有调用项目中的其他文件。我收到了警告

No mapping found for HTTP request with URI [/example/css/main.css] in DispatcherServlet with name 'Example'

还有一些其他警告/ 404用于我没有尝试映射的文件。

enter image description here

有人可以帮我理解我的项目错误配置的确切位置吗?

1 个答案:

答案 0 :(得分:0)

<强>您好,

您的css和js文件应位于需要在servlet上下文配置中配置的资源文件夹中。

例如(Example-servlet.xml):

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

这意味着{your webapp folder}/js/中的所有文件都会自动映射到前缀为/js/的路径(css也是如此)。

使用这样的配置,您将能够以下列方式加载js和css文件:

<link rel="stylesheet" href="css/main.css">
<script src="js/util.js"></script>

Spring Configuration Example