我有一个基于Spring的Web应用程序。在控制器中,我指定了以下内容:
@RequestMapping(value = "/foo/index.html", method = RequestMethod.GET)
public ModelAndView handleIndex(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("public/foo/index");
}
应用程序web.xml servlet映射:
<servlet-mapping>
<servlet-name>jib</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
当我向http://myhost/foo/index.hml发出请求时,一切正常,但当我尝试调用http://myhost/foo/时 - 我收到404错误。
我的问题是如何处理http://myhost/foo/请求我处理http://myhost/foo/index.html请求的确切方式?
答案 0 :(得分:1)
您没有将任何内容映射到/ foo,只有/foo/index.html。您可以教你的tomcat / jboss /无论是将请求重定向到index.html的目录,但它不会自动发生。
正如@BalusC所指出的,添加index.html可能会这样做(虽然我很确定这是tomcat的默认值)。值得一试。
答案 1 :(得分:0)
好的,解决方案如下所示
更改web.xml文件中的servlet-mapping部分
<servlet-mapping>
<servlet-name>jib</servlet-name>
<url-pattern>/</url-pattern>
更改@RequestMapping值参数:
@RequestMapping(value = {"/foo/", "/foo/index.html"}, method = RequestMethod.GET)
public ModelAndView handleIndex(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("public/foo/index");
}
现在,handleIndex方法处理 / foo / 和 /foo/index.html 路径的所有请求
希望它会帮助某人