5

web.xmlに次のようなマッピングを作成しました。

<servlet>  
        <servlet-name>dispatcher</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
</servlet>
<servlet-mapping>  
        <servlet-name>dispatcher</servlet-name>  
        <url-pattern>/about/*</url-pattern>  
</servlet-mapping>

私のコントローラーには、次のようなものがあります。

import org.springframework.stereotype.Controller;  
@Controller  
public class MyController{  
    @RequestMapping(value="/about/us", method=RequestMethod.GET)
    public ModelAndView myMethod1(ModelMap model){  
        //some code  
        return new ModelAndView("aboutus1.jsp",model);  
    }  
    @RequestMapping(value="/about", method=RequestMethod.GET)
    public ModelAndView myMethod2(ModelMap model){  
        //some code  
        return new ModelAndView("aboutus2.jsp",model);  
    }  
}

そして、私のディスパッチャー-servlet.xmlには次のようなビューリゾルバーがあります。

<mvc:annotation-driven/>  
<bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:viewClass="org.springframework.web.servlet.view.JstlView"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp"/>

驚いたことに、リクエスト.../about/usがコントローラーのmyMethod1に到達していません。ブラウザに404エラーが表示されます。メソッド内にロガーを入れましたが、何も出力されていません。つまり、実行されていません。
.../about正常に動作します!.../about/usリクエストを機能させるために何ができるでしょうか?助言がありますか?

4

3 に答える 3

12

使用する@RequestMapping(value="/us", method=RequestMethod.GET)か、リクエストする必要がありますabout/about/us

于 2012-06-26T09:13:22.470 に答える
2

web.xmlに「/about」をマッピングしたので、渡されるURLは次のようになりますwww.xyz.com/about/ *

あなたの構成が言うようにそれはのために働くでしょう

  1. www.xyz.com/about/about/us
  2. www.xyz.com/about/about

正しく動作させるには /*、代わりにweb.xmlで使用してください/about

または、コントローラーのエンドポイントをに変更します

@RequestMapping(value="/us", method=RequestMethod.GET)

@RequestMapping(value="/", method=RequestMethod.GET)

于 2014-04-26T09:39:16.937 に答える
-3

これで動作しました。dispatcher-servlet.xmlに追加したものは次のとおりです。

<bean
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="alwaysUseFullPath" value="true" />
    </bean>

    <bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="alwaysUseFullPath" value="true" />
</bean>
于 2012-06-26T10:50:19.513 に答える