我有一个问题,我需要尽快解决。
看,我需要从JSP页面显示当前服务的Spring Controller。名称不必在JSP本身中进行解析,实际上我正在使用另一个类(一种标签库)在每页的底部显示此信息。
有没有办法从外部类获取 Controller 名称? (当我在外面说时,我的意思是来自 Controller 本身以外的其他类。)
也许是从请求以某种方式? (或者一些Spring Security请求属性?)。
也许是拦截器?
我想避免只是为了解决此问题而从 Controller 扩展一个类。
任何建议都适用!
最佳答案
您可以实现 HandlerInterceptor
*它具有方法postHandle
,该方法具有您需要的两个参数:
Object handler
-可以转换为HandlerMethod
,包含有关已处理请求ModelAndView
-您需要在其中添加有关处理方法完整的方法签名
org.springframework.web.servlet.HandlerInterceptor#postHandle
:void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView)
throws Exception;
*可以直接扩展
HandlerInterceptor
而不是直接实现HandlerInterceptorAdapter
-这是一种方便的抽象类,它以空主体实现HandlerInterceptor
的所有方法,因此只需要覆盖所需的方法即可。*不要感到困惑,这里有两个
HandlerInterceptor
类,一个用于Servlet,一个用于Portlet(org.springframework.web.portlet.HandlerInterceptor
)。将HandlerInterceptor
用于Servlet的oorg.springframework.web.servlet.HandlerInterceptor
!