0

ユーザーごとに自分のプロフィールリンクを設定したいと思います。
このような:

   @RequestMapping(value = "/{userlogin}", method = RequestMethod.GET)
    public String page(@PathVariable("userlogin") String userlogin, ModelMap model) {
        System.out.println(userlogin);
        return "user";
    }

しかし、静的ページもこの式を取得します..次の
ように:

@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
    System.out.println("hello mapping");
    return "hello";
}

それは、両方のコントローラーを呼び出す GET リクエスト "hello" をリクエストするときです。
私はそれをしたいと思います。ユーザーコントローラーは、他のメソッドが呼び出されていない場合にのみ呼び出します。

コンソール、localhost:8080/123 を呼び出すと:

123

コンソール、localhost:8080/hello を呼び出すと:

hello 
hello mapping

また

hello mapping
hello 

だけもらいたい

hello mapping

localhost:8080/helloを呼び出すとき

それがどのように実装できるか誰が知っていますか?

4

1 に答える 1

1

Spring MVC は、正規表現で URI テンプレート パターンを使用できます。提供された :

  • userlogin数字のみを含む
  • その他 ルート直下の URL に少なくとも 1 つの数字以外の文字が含まれています

あなたはあなたの中でそれを使うことができます@RequestMapping

@RequestMapping(value = "/{userlogin:\\d+}", method = RequestMethod.GET)
public String page(@PathVariable("userlogin") String userlogin, ModelMap model) {
    //...
}

と他の URLの分離がuserlogin私が想像していたものと異なる場合は、簡単に適応できます。

于 2014-10-27T19:30:21.533 に答える