我正在使用 Tomcat 6 和 Spring 2.5开发一个 Spring 应用程序。我试图让我的 URL 映射正确。我想要的工作如下:
http://localhost:8080/idptest -> doesn't work
但是,我必须在我的 URL 中引用上下文名称才能解析映射:
http://localhost:8080/<context_name>/idptest -> works
如何避免在不使用重写/代理引擎(例如 Apache)的情况下在我的 URL 中引用上下文名称的要求?
这是我的 web.xml 中的 servlet 定义和映射:
<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...
}
}
谢谢!