1. ホーム
  2. spring

[解決済み】DispatcherServletの名前[duplicate]でURI...を持つHTTPリクエストのマッピングが見つからない。]

2022-02-23 17:37:29

質問

スタックオーバーフローの関連記事をほぼ全てチェックしましたが、どうしても問題を解決できません。

以下はそのコードです。 web.xml。

   <display-name>Spring3MVC</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>contextConfigLocation</param-name> 
        <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 
    <listener> 
        <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> 
    </listener>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
        <url-pattern>/</url-pattern>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
</web-app>

spring-servlet.xmlを作成します。

<context:component-scan base-package="com.mycompany.elso" />
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>   

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

myControllerです。

public class myController {
    @RequestMapping("/hello")
    public ModelAndView helloWorld() {

        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello", "message", message); 
    }
}

Webページ/index.jsp。

<html>
<head>
    <title>Spring 3.0 MVC Series</title>
</head>
<body>
    <a href="hello.html">Say Hello</a>
</body>
</html>

Webページ/WEB-INF/jsp/hello.jspです。

<html>
<head>
    <title>Spring 3.0 MVC Series: Hello World - ViralPatel.net</title>
</head>
<body>
    ${message}
</body>
</html>

アプリを起動するとindex.jspは正しく読み込まれますが、hrefをクリックしてhello.jspに移動すると404エラーになり、サーバーログにはこう表示されます。

No mapping found for HTTP request with URI [/Elso/hello.html] in DispatcherServlet with name 'spring'

このような記事を何十個もチェックしたのですが、どうしても間違いが見つかりません、どなたか心当たりのある方はいらっしゃいますか?

解決方法は?

を追加してみるとよいでしょう。 @Controller のアノテーションを追加してください。 以下のURLを試してみてください。 /<webappname>/my/hello.html . これは org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping の前につける /my を myController クラスの各 RequestMapping に追加します。