2010-04-23 32 views
1

我正在使用Tomcat 6和Spring 2.5的Spring應用程序。我試圖讓我的URL映射正確。我想有工作如下:Servlet映射幫助 - 可避免引用上下文名稱?

http://localhost:8080/idptest -> doesn't work 

但是相反,我在我的網址,以引用上下文名稱解析映射:

http://localhost:8080/<context_name>/idptest -> works 

我如何避免要求在我的URL中引用上下文名稱而不使用重寫/代理引擎,例如Apache的?

這裏是servlet定義和映射從我的web.xml:

<servlet> 
    <servlet-name>idptest</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/conf/idptest.xml</param-value> 
    </init-param> 

    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>idptest</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

這裏是我的控制器的輪廓(用於請求映射顯示註釋):

@Controller 
@RequestMapping("/idptest") 
public class MyController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String setupForm(Model model){ 
      MyObject someObject = new MyObject(); 
     model.addAttribute("someObject", someObject); 
     return "myform"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String processSubmit(@ModelAttribute("someObject") MyObject someObject) throws Exception { 
     // POST logic... 
    } 
} 

謝謝!

回答

4

這將取決於你的servlet容器,Tomcat的 - 你幾乎必須部署Web應用程序的ROOT Web應用程序,也就是在$ CATALINA_HOME/webapps /目錄ROOT/

更多信息here

+0

@nos謝謝,更新了我的問題(容器和版本)。 – 2010-04-23 19:20:52

1

只需將您的war文件重命名爲ROOT.war,然後應用程序在根環境中運行(即使用空的上下文名稱)