SpringMVC 使用注解时路径找不到

SpringMVC 注解路径找不到

今天在使用SpringMVC时偶然遇到了跳转 404 的问题,于是决定记录下来

启动后输入@RequestMapping("/login")注解里的login后跳转404

可能问题:

  1. springmvc.xml 里没有配置视图解析器,如:
<!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
  1. web.xml 文件里没有配置servlet
<servlet>
  <servlet-name>springmvc</servlet-name>
    <!--DispatcherServlet SpringMVC的前端控制器-->
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化参数  便于找到配置文件springmvc.xml的路径-->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>springmvc</servlet-name>
    <!--拦截路径,会把所有请求拦截,拦截后进入DispatcherServlet-->
  <url-pattern>/</url-pattern>
</servlet-mapping>
  1. 输入@RequestMapping("/login")注解里的login后能跳转,在点提交的时候404

    问题可能原因:form表单里action的请求地址 和 Tomcat 的配置 URL 对不上

    如: Tomcat 的URL为:http://localhost:8080/springmvc-02/

    而form表单的 action 是 action="/loginDo" , 多了 /

    • 加 / 代表绝对路径,从站点根目录开始找,即http://localhost:8080/

    • 不加 / 代表相对路径,是从当前路径开始找,即http://localhost:8080/springmvc-02/

    所以当 Tomcat 的URL为:http://localhost:8080/springmvc-02/ 时,form表单里action*的请求地址不加 / ,或者 加 / ,但在前面加上 /springmvc-02

    综上,不管Tomcat 的路径是http://localhost:8080/,还是如http://localhost:8080/springmvc-02/, 只要确保路径和Tomcat的URL对得上就行

posted @   梓默  阅读(448)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示