2014-11-06 49 views
0

我試圖獲取應用程序的根路徑,爲前「/對myApp」,但不幸的是,沒有工作..如何讓應用程序的根路徑

我怎樣才能得到它?

到目前爲止我試過..

package redb.main.modules.sample.view.overview.columns; 

import java.io.Serializable; 
import java.text.MessageFormat; 

import javax.servlet.ServletContextEvent; 
import javax.servlet.ServletContextListener; 

import redb.main.core.model.Dev; 
import redb.main.core.model.Sam; 
import redb.main.core.model.SampleVisitor; 
import redb.main.core.model.Sys; 

public class AnalLinkResolver implements SampleVisitor, Serializable, ServletContextListener { 

    private static final long serialVersionUID = 1L; 
    private final String DANAL= "/anal/over?sRNo={0,number,#}"; 
    private final String SANAL= "/anal/overv?sRNo=S{0,number,#}"; 


    private String linkPattern; 
    private String contextPath; 
    private Integer id; 

    public AnalLinkResolver() { 

    } 

    @Override 
    public void visit(Sys s) { 
     linkPattern = contextPath + SANAL; 
     id = s.getRNo(); 
     System.out.println("contextpathis: " + contextPath); 

    } 

    @Override 
    public void visit(Dev d) { 
     linkPattern = contextPath + DANAL; 
     id = d.getRNo(); 
    } 

    public String resolveForSam(Sam sam) { 
     sam.accept(this); 
     return MessageFormat.format(linkPattern, id); 
    } 

    @Override 
    public void contextInitialized(ServletContextEvent event) { 
      contextPath = event.getServletContext().getContextPath().toString(); 
      System.out.println("PATHNY: " + contextPath); 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent event) { 
     //contextPath = event.getServletContext().getContextPath().toString(); 
     //System.out.println("PATHNY: " + contextPath); 
    } 

} 

,並在web.xml中添加了這個:

<listener> 
     <listener-class> 
      redb.main.modules.sample.view.overview.columns.AnalLinkResolver</listener-class> 
</listener> 

我越來越從contextInitialized方法打印contextPath中,但不從訪問方法..那裏我得到空... 我應該做什麼來獲得根路徑?對於前「/ myApp」?

PS:我用SpringMVC使用便門&在我的應用

+0

您添加有關此問題的詳細信息?應用程序可以用不同的方式在servlet容器中註冊。例如,Wicket應用程序通常使用servlet過濾器進行註冊。 – 2014-11-06 18:50:18

+0

你是什麼意思?我不明白:/ – ZelelB 2014-11-13 13:27:57

+0

RequestCycle.get()。getRequest()。getContextPath() – ozeray 2015-04-17 11:40:00

回答

0

WebApplication.get().getServletContext().getContextPath()

相關問題