4

我的 Spring Dispatcher servlet url-pattern 是 /* (正如 spring MVC REST 建议的那样)
现在所有请求都由这个 Servlet 解决。甚至 CSS/JS/Images 也被 servlet 解析和处理。

所以,Spring MVC 试图找到控制器.. :(

如何绕过这个?有没有解决这个问题的标准方法?

& 不想将 url-pattern 更改为 /rest/*(因此,其他静态资源会被 /css/ 或 /js 等访问)

4

3 回答 3

5

您可以将您的控制器映射到一组较小的 URL(即 /app/*),然后重写您的用户实际看到的 URL,以便他们甚至不知道。查看mvc-basic webapp 示例,特别是 web.xml 和 urlrewrite.xml 以了解这是如何完成的。

于 2010-01-12T09:42:24.820 回答
2

将 Spring 调度程序映射到 URL 空间的某个子部分,并使用Tuckey重写用户处理的 URL。

http://www.example.org/app/controller/action -> http://www.example.org/controller/action

于 2010-01-12T09:44:55.370 回答
0

只是对此的提醒更新:Spring 示例中定义的默认重写配置对我来说不是开箱即用的。样式表、脚本等的重写规则仍然被处理到 /app/* 规则,随后由 处理DispatchServlet,这是不可取的。

我必须将last="true"属性添加到样式/脚本/图像规则以指示不应应用其他规则,并且我必须在任何 CSS/JS 包含路径中使用 FreeMarker Spring URL 宏。

以防万一有人遇到同样的问题。

于 2010-07-05T08:38:17.050 回答