JSP /页面中的Spring MVC Controller类名


问题内容

我有一个问题,还有一个我需要尽快解决的问题…在解决一些问题的其他方法上,我已经拔掉了头发。

看,我需要从JSP页面显示当前服务的Spring
Controller。名称不必在JSP本身中进行解析,实际上我正在使用另一个类(一种标签库)在每页的底部显示此信息。

有没有办法从外部类获取控制器名称?(当我在外面说时,我的意思是来自Controller之外的其他类。)也许是出于某种要求?(或者一些Spring
Security请求属性?)。也许是拦截器?

我想避免从控制器扩展一个类来解决此问题。

任何建议都适用!


问题答案:

您可以实现 * 它具有一个method
,它具有您需要的两个参数:HandlerInterceptor __postHandle

  • Object handler-可以转换为HandlerMethod,包含有关已处理请求的Controller方法的信息
  • 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)。使用HandlerInterceptorfor
Servlet oorg.springframework.web.servlet.HandlerInterceptor