2016-12-02 7 views
0

以下の私の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()を使用していますが、これはサーブレット名によって異なる場合があります。あなたのコントローラで

+0

を、あなたはこれまでに何をしようとしたのですか? –

+0

@KurtVandenBrandenが質問に追加されました –

+0

Do not ...最初に依存関係注入を使用する必要があります.2番目に 'WebApplicationContextUtils'は' DispatcherServlet'のものではなくルートコンテキストを提供します。 –

答えて

1

、あなたが試すことがあります。

request.getServletContext().getServletContextName() 

それとも

​​
+0

私はリクエストオブジェクトを持っていません&getServletContextNameは私のディスパッチャーサーブレット名を返しません –

+0

あなたはあなたのコントローラメソッドを追加できますか? –

+0

私は自分の答えを更新しました。 –

関連する問題