gpt4 book ai didi

java - 如何调试 Spring MVC url 映射?

转载 作者:IT老高 更新时间:2023-10-28 13:49:22 26 4
gpt4 key购买 nike

我正在使用 Spring MVC 3,但遇到了 URL 映射问题。我有方法

 @Controller
public class DocumentController {
@RequestMapping( value="/docs/pupil/classes/{courseCategoryType}", method=RequestMethod.GET )
public ModelAndView listClassesForPupil( @PathVariable("courseCategoryType") final String courseCategoryType ){
System.err.print( "\n\n\n\t\t--- XXXXX ---\n\n\n" );
}
}

我正在尝试使用 Spring URI template syntax ,并且我知道它正在被映射,因为在控制台中我看到:

 11:22:12,108  INFO DefaultAnnotationHandlerMapping:411 - Mapped URL path [/docs/pupil/classes/{courseCategoryType}] onto handler 'documentController'
11:22:12,108 INFO DefaultAnnotationHandlerMapping:411 - Mapped URL path [/docs/pupil/classes/{courseCategoryType}.*] onto handler 'documentController'
11:22:12,108 INFO DefaultAnnotationHandlerMapping:411 - Mapped URL path [/docs/pupil/classes/{courseCategoryType}/] onto handler 'documentController'

但是,当我在浏览器中输入 URLhttps://localhost/docs/pupil/classes/ACADEMIC 时,我收到 404 错误,并且在控制台中看不到任何打印内容。我替换了只是抛出异常的打印输出代码,它似乎也没有被抛出。一位同事建议应该有一种方法来查看 URL 解析是如何完成的,但是 Google search似乎什么都没出现。

关于如何调试的任何建议?

最佳答案

对于这样的问题,我觉得开始调试的最佳“入口点”是 DispatcherServlet 的方法 getHandler(HttpServletRequest request)

在此方法中,检查每个配置的 HandlerMapping 是否负责处理您的特定请求。如果您的请求到此为止,您可以确定这是 spring 上下文中的配置问题。

注意 RequestMappingHandlerMapping 类型的处理程序(或 DefaultAnnotationHandlerMapping,如果您使用的是旧版本的 Spring),这些通常是 HandlerMapping 由基于注解的 Controller 配置使用。

在另一种情况下,确保 DispatcherServlet 过滤您的请求的“前面”没有任何内容(就像您的情况一样)

关于java - 如何调试 Spring MVC url 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com