Java Tomcat+;弹簧误差404

Java Tomcat+;弹簧误差404,java,spring,maven,jakarta-ee,tomcat7,Java,Spring,Maven,Jakarta Ee,Tomcat7,我知道有人问过类似的问题,但我似乎找不到一个与我的配置相同的问题 我用Maven和spring建立了一个EclipseJavaEE项目。我按照以下教程进行设置: 当我启动项目时,我得到一个错误404 教程没有提到dispatcher-servlet.xml的创建,所以可能这就是问题所在,但我不确定Maven是否需要它 我的配置如下: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="h

我知道有人问过类似的问题,但我似乎找不到一个与我的配置相同的问题

我用Maven和spring建立了一个EclipseJavaEE项目。我按照以下教程进行设置:

当我启动项目时,我得到一个错误404

教程没有提到dispatcher-servlet.xml的创建,所以可能这就是问题所在,但我不确定Maven是否需要它

我的配置如下:

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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>FindLove</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
初始值设定项类

public class Initializer implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext) throws ServletException {

        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();  
        ctx.register(WebAppConfig.class);  

        ctx.setServletContext(servletContext);    

        Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));  
        servlet.addMapping("/");  
        servlet.setLoadOnStartup(1);  
    }

}
控制器

@Controller
public class LinkController {

    @RequestMapping(value="/hello-page")  
    public ModelAndView goToHelloPage() {  
        ModelAndView view = new ModelAndView();  
        view.setViewName("hello"); //name of the jsp-file in the "page" folder  

        String str = "MVC Spring is here!";  
        view.addObject("message", str); //adding of str object as "message" parameter  

        return view;  
    }  

}
index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<h1>Home page</h1> 
<p>This is a Home Page.</p>  
<p><a href="hello-page.html">Hello world link</a></p> 

主页
这是一个主页。

hello.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<p>Hello world: ${message}</p>  
<p>Well done!</p>   

你好,世界:${message}

干得好

有什么建议吗

提前谢谢

我不认为

<p><a href="hello-page.html">Hello world link</a></p> 
并调用映射到的
@Controller
处理程序方法

servlet.addMapping("/");  
@RequestMapping(value="/hello-page")  
将您的链接更改为

<p><a href="hello-page">Hello world link</a></p> 

理想情况下,你会想把它放到

<p><a href="<c:url value="/hello-page" />">Hello world link</a></p> 


因此它与上下文路径相关。不要忘记添加标记库声明。

tomcat日志中有错误吗?
<p><a href="hello-page">Hello world link</a></p> 
<p><a href="<c:url value="/hello-page" />">Hello world link</a></p>