You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC报No mapping for GET /customer/showForm错误如何解决?

针对No mapping for GET /spring-mvc-demo/customer/showForm报错的排查方案

你贴出的CustomerController路径注解写法本身没有问题,类级别的@RequestMapping("/customer")叠加方法级别的@RequestMapping("/showForm"),组合路径和报错提示的请求路径完全匹配,问题基本出在Spring MVC核心配置环节,按以下优先级逐一排查即可:

  • 检查组件扫描包范围
    你的Controller类位于com.coding包下,要确保Spring MVC配置文件(通常命名为xxx-servlet.xml,和DispatcherServlet绑定)中配置的组件扫描路径覆盖到该包,正确配置示例:
    <context:component-scan base-package="com.coding" />
    
    如果之前配置的base-package范围过窄,比如只写了com.coding.service、com.coding.mapper这类子包,Spring容器启动时就不会扫描到CustomerController,自然不会注册对应的请求映射。
  • 核对web.xml中DispatcherServlet配置
    首先确认servlet-mapping的拦截规则能覆盖目标请求,建议配置为拦截所有路径:
    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    不要把url-pattern写成*.do、/action/*这类和请求路径不匹配的规则,同时要确认init-param指向的Spring MVC配置文件路径正确,启动时没有抛出文件找不到的异常。
  • 查看启动日志确认映射注册情况
    Spring MVC启动时会在控制台打印所有成功注册的请求映射,格式类似Mapped "{[/customer/showForm],methods=[]}",启动项目后搜索日志,要是找不到CustomerController两个接口的映射注册记录,直接回到第一步检查组件扫描配置即可。
  • 校验请求方式匹配
    你当前代码中@RequestMapping注解没有限定请求方法,默认同时支持GET、POST请求,这块不会触发当前报错;如果后续给注解加了method = RequestMethod.POST属性,再用GET方式访问就会报无映射的错误,按需调整即可。
  • 检查视图解析器配置
    上述配置都没问题的前提下,确认视图解析器配置正确,能匹配你代码中返回的视图名,参考配置:
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>
    
    把prefix值改成你自己存放JSP文件的实际路径,确保customer-form.jsp、customer-confirmation.jsp文件存在于对应目录下。

小提示:你贴的processForm方法里return关键字和后面的视图字符串之间没加空格,写成了return"customer-form",虽然Java编译不会报错,但建议统一加空格写成return "customer-form",避免后续出现不必要的解析问题。

内容的提问来源于stack exchange,提问作者Anjita Kandel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:36:21