1

このトピックに関する質問がたくさんあることは承知していますが、ここで見つけた解決策はどれもうまくいきませんでした。私はSpringとJetty6を使用しているので、web.xmlファイルがありません。スプリングディスパッチャサーブレットのマッピングは、jettyの設定で「/」に設定されています

発車係:

<bean class="org.mortbay.jetty.servlet.ServletHolder">
    <property name="name" value="spring" />
    <property name="servlet">
        <bean class="org.springframework.web.servlet.DispatcherServlet" />
    </property>
    <property name="initParameters">
        <map>
            <entry key="contextConfigLocation" value="classpath:com/project/config/spring-servlet.xml" />
        </map>
    </property>
</bean>

... マッピング:

<bean class="org.mortbay.jetty.servlet.ServletMapping">
    <property name="servletName" value="spring"></property>
    <property name="pathSpec" value="/"></property>
</bean>

spring-servlet.xmlは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="..." ...>


<context:component-scan base-package="com.project.web" />
<mvc:annotation-driven />

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

</beans>

そして私はHelloControllerと呼ばれる単純なコントローラーを持っています:

@Controller
public class HelloController {

    @RequestMapping(method = RequestMethod.GET, value="/welcome")
    public String sayHello(ModelMap model){
    model.addAttribute("message", "Spring 3 MVC Hello World");
    return "hello";
}

}

ログを読み取ると機能しているように見えますが、次のエラーが発生します。

DispatcherServletに「spring」という名前のURI[/WEB-INF/pages/hello.jsp]を持つHTTPリクエストのマッピングが見つかりません

わかりません。「/welcome」を/WEB-INF/pages/hello.jspにマップしますが、それでもページが見つからないと表示されます。これは、ページを探しているように見える場所にあります。クラスパスにWEB-INFフォルダーを追加しましたが、それでも同じです。なぜだか分かりますか?

4

3 に答える 3

2

これでパッケージ名は正しいですか?

<context:component-scan base-package="com.project.web" />
于 2013-12-23T19:15:31.093 に答える
0

hello.jspはWEB-INF/pagesの直下にありますか?ディスパッチャサーブレットのマッピングをこれに変更して、試してみてください

<property name="pathSpec" value="*.html"></property>
于 2012-11-06T21:05:24.077 に答える
0

コントローラのリクエスト マッピング パスは、http://your-domain/your-app/. アプリ名がwelcomeurlhttp://localhost:25001/welcome/welcomeの場合、または requestmapping を に変更して、 url@RequestMapping(method = RequestMethod.GET, value="/")を使用できるようにします。http://localhost:25001/welcome

于 2012-11-06T10:35:59.983 に答える