Spring MVC での切り捨てられたパス変数
Spring MVC でパス変数を使用する場合、変数内に特殊文字が含まれる状況が発生する可能性があります。切り捨てられる原因になります。これにより、予期しない結果やエラーが発生する可能性があります。
問題:
提供されたコントローラーでは、特殊文字を含む URL にアクセスすると @PathVariable blahName が切り捨てられます。たとえば、「get/blah2010.08.19-02:25:47」のようなパスでは、blahName が「blah2010.08」に設定されます。
Reason:
デフォルトでは、Spring MVC はパス変数が特定の形式に従うことを期待しており、ピリオドやダッシュなどの文字は多くの場合区切り文字として解釈されます。これにより、そのような文字が見つかった時点で変数が切り捨てられます。
解決策:
切り捨てを防ぐには、@ で正規表現を使用できます。 RequestMapping 引数。これにより、パス変数に対してより柔軟なパターンを指定できます。たとえば、次の正規表現では、blahName 変数に任意の文字を使用できます:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
: を追加します。 @PathVariable に追加すると、パターンが任意の文字に 1 回以上一致するようになります。これにより、含まれる特殊文字に関係なく、パス変数全体が確実にキャプチャされます。
以上がSpring MVC でパス変数が切り捨てられるのを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。