アクティブなリクエストに対してクライアントが使用する URL に基づいて URL を作成したいと思います。現在のHttpServletRequest
オブジェクトとそのメソッドを取得して、 getParameter...()
GET パラメータのみを含む完全な URL を再構築するよりもスマートな方法はありますか。
説明: 可能であれば、HttpServletRequest
オブジェクトの使用をやめたいと思います。
ベストアンサー1
このデータに簡単にアクセスする方法は 2 つありますが、インターフェイスでは 1 回の呼び出しで URL 全体を取得することはできません。手動で構築する必要があります。
public static String makeUrl(HttpServletRequest request)
{
return request.getRequestURL().toString() + "?" + request.getQueryString();
}
Spring MVC 機能を使用してこれを実行する方法についてはわかりません。
現在のリクエストをどこにも渡さずにアクセスする場合は、web.xml にリスナーを追加する必要があります。
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
次に、これを使用して、現在のスレッドにバインドされたリクエストを取得します。
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest()