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使用便門&在我的應用
您添加有關此問題的詳細信息?應用程序可以用不同的方式在servlet容器中註冊。例如,Wicket應用程序通常使用servlet過濾器進行註冊。 – 2014-11-06 18:50:18
你是什麼意思?我不明白:/ – ZelelB 2014-11-13 13:27:57
RequestCycle.get()。getRequest()。getContextPath() – ozeray 2015-04-17 11:40:00