代码之家  ›  专栏  ›  技术社区  ›  Kyan

spring mvc sub-mapping@requestmaping throws 404

  •  1
  • Kyan  · 技术社区  · 6 年前

    宽宏大量地告诉我们为什么我有这个愚蠢的问题

    没有地图,一切正常!但我有一个简单的问题。我设置了父映射@“hello”和子映射方法@“showform”,调度器设置为“/” 但我得到了404 (见图3) . 我找不到问题的答案 相似的 去挖掘。

    有关我的设置,请参阅下面的代码和标记

    控制器图1

       @Controller
        @RequestMapping("/hello")
        public class HelloWorldController {
    
    
    
            @RequestMapping("/showForm")
            public String showForm() {
                return "hello-world";
            }
    

    Web.xml图2

    <servlet>
        <servlet-name>yktech</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>yktech</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    Tomcat错误图3

    Type Status Report
    
    Message /yktech/hello/WEB-INF/view/hello-world.jsp
    
    Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
    

    编辑:忘记了豆子图4

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="WEB-INF/view/"/>
    <property name="suffix" value=".jsp"/>
    </bean>
    

    编辑:结构树(混乱我知道)

    enter image description here

    编辑4,index.jsp

    <html>
    <body>
    <h2>Welcome to my homepage
    </h2>
    <a href="hello/showForm">Show form</a>
    
    <a href="Student/showForm">Show STUDENT form</a>
    </body>
    </html>
    

    编辑5 POM.XML

    <project
     xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.yktech</groupId>
      <artifactId>yktech</artifactId>
      <packaging>war</packaging>
      <version>1.0</version>
      <name>yktech</name>
      <url>http://maven.apache.org</url>
    
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.17.RELEASE</version>
    </dependency>
    
     <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
         </dependency>    
      </dependencies>
      <build>
        <finalName>yktech</finalName>
      </build>
    </project>
    

    编辑6、服务器日志、映射URL

    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/yktech-servlet.xml]
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processForm] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processForm.*] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processForm/] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processFormVersionTwo] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processFormVersionTwo.*] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/processFormVersionTwo/] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/showForm] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
    INFO: Mapped URL path [/hello/showForm.*] onto handler 'helloWorldController'
    Jul 30, 2018 10:19:30 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping 
    
    registerHandler
        INFO: Mapped URL path [/hello/showForm/] onto handler 'helloWorldController'
    
    ... CARRIES ON SHOWS NO ERRORS....
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   AchillesVan    6 年前

    /hello whatever() /hello/showForm showForm()

    @Controller
        @RequestMapping("/hello")
        public class HelloWorldController {
    
    @RequestMapping("/")
            public String whatever() {
                return "whatever";
            }
    
            @RequestMapping("/showForm")
            public String showForm() {
                return "hello-world";
            }
    
        2
  •  0
  •   Kyan    6 年前