【问题标题】:How to get request url in jsp in SpringMVC?如何在 Spring MVC 中的 jsp 中获取请求 url?
【发布时间】:2014-11-20 08:39:55
【问题描述】:

我在 Spring Mvc 中将页面 /folder/hello.jsp 映射到控制器 /hello

现在我想通过 jstl ${pageContext.request.requestURL} 在我的 jsp 中获取控制器映射的 url /hello,但我得到了 /folder/hello.jsp

我在控制器中尝试了HttpServletRequest.getRequestURL() 并获得了我想要获取的当前网址。但我不想更改我的控制器。

【问题讨论】:

    标签: spring-mvc


    【解决方案1】:

    据我所知,没有 Spring 结构可以支持这一点。在我看来,最好编写一个拦截器并将映射添加到模型属性。像

    这样简单的东西
    public class MapToModelInterceptor extends HandlerInterceptorAdapter {
    
        @Override
        public boolean preHandle(HttpServletRequest request,
                HttpServletResponse response, Object handler) throws Exception {
            return true;
        }
    
        @Override
        public void postHandle(HttpServletRequest request,
                HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
             modelAndView.addObject("mapping", request.getRequestURI());
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request,
                HttpServletResponse response, Object handler, Exception ex)
                throws Exception {
        }
    
    }
    

    和配置

    <interceptors>
        <interceptor>
            <mapping path="/**" />
            <beans:bean class="org.example.interceptors.MapToModelInterceptor"></beans:bean>
        </interceptor>
    </interceptors>
    

    【讨论】:

    • 谢谢,我通过这种方式解决了它。
    猜你喜欢
    • 2011-10-21
    • 2011-07-25
    • 2019-03-21
    • 2014-10-23
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多