使用 在spring3中导致所有其他视图停止工作


问题内容

最简单的例子:

我已经配置了一个调度程序servlet来捕获所有内容:

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我有一个简单的测试控制器:

@RequestMapping("/index")
@ResponseBody
public String rootTest(){
    return "Main page displayed from TestController";
}

在这个测试用例中,我将以下行添加(或删除)到dispatcher-servlet.xml

<mvc:resources mapping="/public/**" location="/public/"/>

我的远大目标: 提供静态内容(图像,css,js)以及动态内容(通过Jetty
servlet容器内的Velocity生成,与全能的Spring捆绑在一起)。

我的Dilema: 添加时,<mvc:resources .../>我得到404
http://localhost/index,但是我可以从http://localhost/public/img/42.png提供图像。如果删除,<mvc:resources .../>http://localhost/index可以正常工作,但是,当然,如何投放静态内容?

额外的问题: 为什么我永远也不会吃蛋糕呢?


问题答案:

有两个问题:

  1. 切勿/*在servlet映射中使用:

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