从请求对象获取客户端URL的方法?

时间:2018-07-26 22:19:23

标签: java spring

我有以下控制器:

@Controller
public class MyErrorController implements ErrorController {

    @RequestMapping("/error")
    public String handleError(HttpServletRequest request, Model model) {
        model.addAttribute("request", request);
        return "error";
    }

}

以及以下模板:

URL: <span th:text="${#request.getRequestURL()}">url</span><br/>

如果我转到网址http://localhost:8080/this-is-a-404-url,则模板显示如下:

URL: http://localhost:8080/error

但是,这不是正确的网址(仅是requestMapping)。有没有办法从模板中的request对象获取客户端URL?

请注意,如果必须在控制器中执行此操作,则可以执行:request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);。有办法在百里香中做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以通过获取转发的请求uri来完成上述操作:

URL: <span th:text="${#request.getAttribute('javax.servlet.forward.request_uri')}">url</span><br/>

这将返回您的“ / this-is-a-404-url”