以下の私の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が質問に追加されました –
Do not ...最初に依存関係注入を使用する必要があります.2番目に 'WebApplicationContextUtils'は' DispatcherServlet'のものではなくルートコンテキストを提供します。 –