2

私は春のmvcアプリケーションを持っています

web.xml の場合、次のように記述します。

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

に行くhttp://localhost:8080/Mvc/controllerPath/sayHello マイページを見る

私が書くなら

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/controllerPath/*</url-pattern>
</servlet-mapping>

行きhttp://localhost:8080/Mvc/controllerPath/sayHello ます-404が見えます

あなたは私が何を望んでいるかを理解したと思います。

私を助けてくれますか?

アップデート

コントローラ:

@Controller
@RequestMapping("/controllerPath")
public class MyController {

    @RequestMapping("/sayHello")
    public String sayHello(Model model){
        model.addAttribute("name", "Vasya");
        return "hello";
    }

}

私が書くなら

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/Mvc/controllerPath*</url-pattern>
  </servlet-mapping>

404

4

1 に答える 1

3

削除する場合:

@RequestMapping("/controllerPath")

@RequestMapping("/")

新しいサーブレット マッピングが機能します。

この理由は、サーブレット マッピング URL にあるものはすべて、Spring がコントローラーに一致させようとする前に取り除かれるためです。

たとえば、just を使用した最初の url マッピング/(および web アプリケーションが にデプロイされていると仮定/mvc) では、Spring のパスは/mvc/controllerPath/sayHellourl から url マッピングを取り除き、にマップするコントローラーを見つけることを期待しています。/controllerPath/sayHello

url-pattern を /controllerPath に変更すると、それも削除され、単に/sayHelloに応答するコントローラーが検索されます。/controllerPath/sayHello

于 2013-10-29T15:04:37.323 に答える