私のスプリングコントローラは、ビューアページ内のすべての静的コンテンツをロードするためにスプリングコンテナによって行われた間違いでない場合、/resources/*
で始まるURI以外の任意のURIタイプの取得リクエストを取る必要があります。春のRequestMappingで特定のURIパターンを無視するには?
現在の構成では、URI /
または/example
との要求のために誰かがURIなどにタイプミスをした場合正常に動作し、この
@RequestMapping(method = RequestMethod.GET, value="/*")
のようなものです。 /example/random/char
それはかなり明白であるとvalue="/**"
@RequestMapping(method = RequestMethod.GET, value="/**")
を作るために私をリード見つからない例外トレースページ(404)を投げて、その後URI /
または/example
とのリクエストが私のビューページで.js, .css or .png
ファイル私の静的なコンテンツをロードすることはできません。これにより、春は内部的にこれらのファイルをURLパターンで読み込むように呼び出すという結論に至りました。 http://localhost:8080/resources/my.jpg
。
注: -私は故意にtomcatを設定してプロジェクト名を削除しました。
更新 @dimitrisliのコメントは、私のプロジェクトについて少し詳しく説明する必要があることを認識させます。
基本的にURLリダイレクトコンポーネントです。ユーザーはget requestを使用してアプリケーションを呼び出すだけで、実際のページにリダイレクトされます。
たとえば、ユーザーが私のブラウザにURLを入力すると、http://localhost:8080/sample
としましょう。私のアプリケーションでは、URLを分割して文字列sample
を取得し、db内の実際のURLを検索する必要があります(sample
は実際に長いURLのエイリアス名です)。 URLが存在する場合は、実際のページにリダイレクトされます。他のページは存在しませんというメッセージが表示されます。
ご回答ありがとうございますが、それは私の懸念事項ではありません。私はすでにこれをしています。 @Override public void addResourceHandlers(ResourceHandlerRegistryレジストリ){ \t \t registry.addResourceHandler( "/ resources/**")。addResourceLocations( "/ resources /"); } – Satyaprakash
あなたの懸念事項は何ですか?リソースの詳細を定義した場合、すべての静的コンテンツはwebappによって処理され、@RequestMappingを経由しません。 – dimitrisli
はい、正しくありますが、値= "/ *"のときはRequestMappingを経由しませんが、 value = "/ **" – Satyaprakash