質問: RequestMethod.GET) public void test(HttpServletRequest request, @PathVariable("opt") String opt) { return; } } ``` ブラウザで「」を実施すると 「@PathVariable("opt") String opt」に「aaa」がはいることを確認できたのですが 「」を実施すると 「@PathVariable("opt") String opt」には「aaa」までしか入っていませんでした。 「?」も含めて値を取得することは可能でしょうか? また、request.getRequestURL().toString()でURLを取得してみても 「」となっているようでした...
回答: @PathVariable はPathに含まれる指定したAliasの値しかとれませんので、クエリストリングを含めることができません。 たとえば というURLに含まれる bbbに対応する値を取得したい場合は ``` @RequestParam("bbb") String bbb ``` を引数に含めることで取得できると思います。 また、HttpServletRequest は以下のメソッドをもっています。 > > HttpServletRequest#getRequestURL > > HttpServletRequest#getQueryString > > > 2つのメソッドが返す値を "?" で連結することでリクエストで使用したURLが取得できると思います。 本家サイトの方でHttpServletRequestについての質問があったので、参考にしてください。(回答はこちらも参考にしました)