2016-05-04 19 views
0

urlのキーワードを末尾に指定することで、spring mvcコントローラをマップすることは可能ですか?URLの末尾の文字列を含むSpring MVCマップコントローラ

  1. example.com/{cityName}
  2. example.com/{cityName}/{categoryName}
  3. example.com/{cityName}/ping
  4. example.com/{cityName}/{categoryName}/ping

私は3つのコントローラメソッドを持つようにしたい:例えば、私は、次のURLをしたとします。 1番目のurlはコントローラ "X"で処理し、2番目のurlはメソッド "Y"で処理し、3番目のurlは1つのメソッド "Z"で処理する必要があります。つまり、/pingで終わるURLは、メソッド "Z"だけで処理する必要があります。そのURLの主要な内容が何であっても。

これはSpring MVCで実現可能ですか?

答えて

1

urlのキーワードの末尾にspring mvc controllerをマップすることはできますか?

はい、のAntスタイルパスパターンを使用できます。例えば、これらのパス変数を抽出するために

@RequestMapping(path = "**/ping") 
public String Z(HttpServletRequest request) { 
    return request.getRequestURI(); 
} 

:コントローラは、レベルの任意の数で、/pingで終わるURLへの要求を処理する次のcityNamecategoryNameの場合は、HttpServletRequestをメソッドハンドラに挿入する必要があります。

@RequestMappingアノテーションは、URIテンプレートに加えて、アングルスタイルのパスパターンもサポートしています。 Spring Documentationについて詳しく読むことができます。

+0

ありがとう、これは私が探していたものです – Abhi

0

コントローラーマッピングの一部としてスラッシュを一致させるようにしているようです。これは、Spring MVC、and the maintainers have no plans to add itではサポートされていません。特殊なケースとして、「ディレクトリ」のレベルが2つに制限されている場合は、上記のようにマッピングを明示的に指定することができます。

+0

ありがとうございました。私は2つのレベルのディレクトリに限定されていません。それは3か4かもしれない、それのための任意の回避策があるでしょうか。 – Abhi

+0

@Abhi単純なものではありません。そのJIRAの問題についてコメントしたり、多レベルのマッチングを行う必要があることを表明したりすることができます。 – chrylis

関連する問題