org.springframework.web.servlet.PageNotFound - No mapping for GET|POST xxx

异常出现的背景:

SSM项目向服务器发送get请求后404错误。服务器打印错误:

org.springframework.web.servlet.PageNotFound - No mapping for GET|POST xxx

下面只给出关键代码:

index.jsp:
 

访问服务器

web.xml:

*.action

springmvc.xml :


DemoAction.java:

@Controller
public class DemoAction {
    @RequestMapping(value="/demo")
    public String demo(){
        System.out.println("GET请求");
        return "main";// 可以直接跳转到/admin/main.jsp页面上。
    }
}

异常出现的原因:

No mapping for GET xxx
对于请求的路径没有正确的映射,也就是说路径肯定是有错误的。


问题的解决:
@RequestMapping映射路径要写后缀,前端请求的是/demo.action,这里就要写@RequestMapping("/demo.action")。


注意:我这里使用的是tomcat10+JDK19,maven依赖用的是jakarta.servlet-api 6.0.0版本,版本不同会影响路径的编写。有些版本的@RequestMapping的路径不需要写后缀.action【直接就是@RequestMapping("/demo")】,这是我这个问题出现的根本原因。这个问题我看了网上好多说法,说url-pattern路径写错和prefix、suffix路径拼接错误的比较多,说版本不匹配导致404的很少。路径写错比较好改,版本不匹配出错这个比较难发现。

ps:log4j查bug很好用。

你可能感兴趣的:(tomcat,spring,intellij-idea,servlet,log4j)