MVCの@RequestMappingでパスにピリオドを含めると拡張子とみなされる問題。MVCの@RequestMappingでパスにピリオドを含めると拡張子とみなされる問題。MVCには、@RequestMappingというアノテーションがあり、これをメソッドにつけるだけで、特定のHTTPリクエストがメソッドにひもづけられます。これはとても便利なのですが、少し変な使い方をしたら、怪しげな挙動を起こしました。目次パスにピリオドを含めると最後のピリオド以降が拡張子とみなされる。パス指定にパターンマッチを使用するパスにピリオドを含めると最後のピリオド以降が拡張子とみなされる。今回この問題に遭遇した原因は、リクエストパスにバージョンを含めようとしたことです。RequestMethod.GET)これで@PathVariableアノテーションをつけたversion変数に「1.0.0」が入るはずだったのですが、versionに「1.0」しか入らなかったのです。truncatedこれは、Springがパスの最後のピリオド以降を拡張子とみなしているからだと分かりました。http://example.com/documents/1.0.0/パスの最後にスラッシュをいれると、ピリオド以降は拡張子とみなされなくなり、version変数には「1.0.0」が入るようになりますが、これでは使い物にならない・・・。Overflowからですが、パス指定に具体的なパターンを指定することです。RequestMethod.GET)これで無事にversion変数が正しくとることができました。RESTには拡張子で出力形式を指定するという仕様があるので、このような挙動をするのだと思いますが、一瞬戸惑う問題でした。@RequestMappingに関連するブログです。MVCの@RequestMappingでサブドメインを振り分ける。コピーkatty0324三度の飯とエレクトロンBackbone.jsとオブザーバーパターンでビューとオブジェクトを疎結合に実装する。#12フォーマットの証明書を読み込もうとすると例外が出る。MVCの@RequestMappingでサブドメインを振り分ける。MVCでは、コントローラに@RequestMappingというアノテーションをつけるだけで、HTTPのリクエストを良きメソッドに振り分けてくれてとても便利です。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ホームWEB開発サーバサイド開発Springkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。日記その他ホーム検索トップサイドバーkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。Handlebars.js2タイトルとURLをコピーしました。