Ниже мой web.xmlКак получить диспетчерское имя сервлета в Спринг контроллере
<servlet>
<servlet-name>DispatcherName</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/webmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Есть ли способ, что я могу получить имя-сервлета «DispatcherName» в мой контроллер приложения?
Я хочу, чтобы это доступ к объектам контроллера из XMLWebApplicationContext &, чтобы сделать это, мне нужно имя RequestDispatcher. До сих пор это то, что я пробовал:
webApplicationContext=WebApplicationContextUtils.getWebApplicationContext(GetServletContextWebListner.getServletContext());
XmlWebApplicationContext xmlWebApplicationContext = (XmlWebApplicationContext)GetServletContextWebListner.getServletContext().getAttribute("org.springframework.web.servlet.FrameworkServlet.CONTEXT."+webApplicationContext.getApplicationName().replace("/", ""));
и попытался это слишком
@WebListener
public class GetServletContextWebListner implements ServletContextListener {
private static ServletContext servletContext;
public static ServletContext getServletContext() {
return servletContext;
}
@Override
public void contextInitialized(ServletContextEvent sce) {
servletContext = sce.getServletContext();
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
servletContext = null;
}
}
и
(XmlWebApplicationContext)GetServletContextWebListner.getServletContext().getServletContextName()
Поскольку я не в состоянии получить имя сервлета, я 'с использованием getApplicationName(), но это может отличаться в зависимости от имени сервлета.
Что вы пытаетесь до сих пор? –
@KurtVandenBranden добавлено в вопрос –
Не ... Вы должны использовать инъекцию зависимостей в первую очередь, во-вторых, 'WebApplicationContextUtils' будет давать только корневой контекст, а не тот, который находится в' DispatcherServlet'. –