我对 Spring MVC 非常陌生,一直在关注教程,但它们似乎不起作用。
我可以很好地加载我的index.jsp 文件,但是当我尝试将其映射到Dispatcher Servlet 时,我不断收到资源未找到错误。
HelloWorld Controller :
package com.javatpoint;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "HELLO SPRING MVC";
return new ModelAndView("hellopage", "message", message);
}
}
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
spring-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.javatpoint" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
我的jsp 文件hellopage.jsp 和welcomepage.jsp 位于我的WEB-INF 文件夹下的jsp 文件夹中。 索引.jsp:
<a href="hello.html">click</a>|
<a href="welcome.html">click</a>
我正在尝试将 hello.html 映射到 HelloWorldController.java。
我非常感谢任何帮助,因为我在映射第一个 Spring MVC 应用程序时遇到问题。
最佳答案
问题出在您的 servlet 映射上,请尝试在 web.xml 中将其更改为:
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
您的 url-pattern 设置为 *.html。因此,只有以“.html”结尾的请求才会被分派(dispatch)到 spring mvc。
关于java - Spring MVC 处理程序映射不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42538392/