URL路由 - URL末尾缺少斜杠会产生404错误

时间:2012-04-27 18:45:44

标签: java spring spring-mvc

我有一个部署在/mobile上的webapp(基于Spring MVC)(详见下文)。问题是:

当我转到http://localhost:8080/mobile/http://localhost:8080/mobile/index时,一切正常。

但是当我去http://localhost:8080/mobile(注意到最后丢失的斜线)时,我收到404错误。为什么(以及如何修复)?

的web.xml:

<servlet>
  <servlet-name>mobileServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/mobile-servlet-context.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>mobileServlet</servlet-name>
  <url-pattern>/mobile/*</url-pattern>
</servlet-mapping>

控制器:

@Controller
public class MobileAppController {
  @RequestMapping({"", "/", "/index"})
  public String index() {
    return "/mobile/index";
  }
}

1 个答案:

答案 0 :(得分:0)

他在网址格式标记中提供了 /mobile/*

如果他给localhost:8080/mobile,那么他就无法访问,因为他们没有匹配的网址。

尝试在网址模式中提供 /mobile* ..我认为它会有效。