2011-02-06 11 views
0

私は、次のエラーを取得しています:春マッピング問題

No mapping found for HTTP request with URI [/my-app] in DispatcherServlet with name 'web'

私のweb.xmlが次のようになります。

<servlet> 
    <servlet-name>web</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>web</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

そして、私のウェブ-servlet.xmlは、次のようになります。

<bean name="myController" class="com.app.web.MyController" /> 

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

助けと説明はすばらしいでしょう。また、コントローラのビューパラメータはnew ModelAndView(?)になるべきですか?

私の目標は、http://localhost:8080/my-appをヒットし、MyControllerにルーティングして、与えられたJSPをロードすることです。

答えて

0

DispatcherServletが/ my-appのリクエストを処理しようとしているように見えます。これは、web.xmlサーブレットマッピングがそのスペースのリクエストをDispatcherServletに誘導していることを示唆しています。

あなたは次のようなことがありますか?

<servlet-mapping> <servlet>dispatcher</servlet> <url-pattern>/*</url-pattern> </servlet-mapping> 

<servlet-mapping> <servlet>dispatcher</servlet> <url-pattern>*.do</url-pattern> </servlet-mapping> 

に合わせたりできます/ *へ/

希望を変更するには、サーブレット・マッピングを(例えば.doという)別の拡張子を使用してコントローラを呼び出してみて更新します。

3

あなたの設定はよかったです。あなたのMyControllerで、あなたはこのように、my-appの要求のマッピングを持っていることを確認してください。 - あなたはhttp://localhost:8080/my-appを呼び出すと

@Controller 
public class MyController { 
    @RequestMapping(value="/my-app", method=RequestMethod.GET) 
    public String mainPage() { 
     return "index"; 
    } 
} 

、サーバはindex.jsp/WEB-INF/jsp/からフォルダを返します。

+0

である。代わりに、BeanNameUrlHandlerMappingを使用することもできますが、これは古い学校です:-)しかし、BeanNameUrlHandlerMappingインスタンスを定義する場合は、明示的にDefaultAnnotationHandlerMappingとAnnotationMethodHandlerAdapterを暗黙的に要求する必要があります。 – Pavel

+0

ありがとう、どうすればアノテーションを使用せずにこれを達成できますか? – joe

+0

また、(コントローラクラスが指定されている)Bean名の意味は何ですか? Springはコントローラを呼び出す方法を知っています( "myController"は明示的に呼び出されていないので)? – joe