我是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
目录结构:
然而,当我导航到 localhost:8080 / example / 时,我的页面丢失了所有的CSS样式,几乎所有调用项目中的其他文件。我收到了警告
No mapping found for HTTP request with URI [/example/css/main.css] in DispatcherServlet with name 'Example'
还有一些其他警告/ 404用于我没有尝试映射的文件。
有人可以帮我理解我的项目错误配置的确切位置吗?
答案 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>