我有一段时间用Spring 3.0 MVC解析URL。我只是构建了一个HelloWorld来试验如何在Spring中构建一个RESTful Web应用程序,没有什么理论上的复杂。如何使用REST-ful URL创建Spring 3 + Tiles 2 Web应用程序?
我已经能够找到的所有示例都基于注意文件扩展名(“* .htm”或“* .do”)的配置,包含虚假目录名称前缀(“/ foo” )或甚至用点(丑陋)作为前缀路径,所有使用某种人造正则表达式模式作为解析器信号的方法。对于REST方法,我想避免所有这些,只使用我的应用程序的自然URL模式。我会假设(也许不正确),在web.xml中我会设置一个“/ *”的url模式,并将所有内容传递给DispatcherServlet进行解析,然后仅依赖于控制器中的URL模式。
我无法可靠地让我的解析器捕获URL模式,并且在所有我的试验中,这导致找不到资源错误,堆栈溢出(循环)或某种不透明的Spring 3 ServletException堆栈跟踪—我对Spring持续的挫折之一通常是错误消息通常不是很有帮助。
我想使用Tiles 2解析器。我在WEB-INF/views /中找到了我的* .jsp文件,并且在应用程序根目录中有一行index.jsp文件,重定向到由我的layout.xml(Tiles 2配置器)设置的索引文件。
我所有的普通Spring 3高级别配置:
<mvc:annotation-driven />
<mvc:view-controller path="/" view-name="index"/>
<context:component-scan base-package="com.acme.web.controller" />
...其次是各种组合和作为UrlBasedViewResolver,的InternalResourceViewResolver,UrlFilenameViewController会等的配置与variantions的所有方式我Tiles 2配置文件。然后在我的控制器中,我试图拿起我的URL模式。问题是,我无法可靠地甚至让解析器捕捉要发送给我的控制器的图案。
现在已经延伸到多天,而我认为实现起来很简单,但没有真正的进展。我可能试图立即做太多,但我会认为这应该是一个简单的(几乎是默认的)配置。我只是想创建一个简单的HelloWorld类型的应用程序,我不希望这是火箭科学。我不知道我的配置(其范围遍及整个地图),没有人知道一个在线的例子:显示一个简单的Spring 3 MVC + Tiles 2 Web应用程序,它使用REST-ful URL(即,避免强制URL模式,如文件扩展名,添加的目录名称或点),并完全依赖Spring 3代码/注释(即,除了Spring MVC本身之外没有任何内容)来完成此操作? 有没有简单的方法来做到这一点?
非常感谢您的帮助。
我也正在尝试使用Spring 3 Web MVC框架与使用Apache瓷砖Spring的REST风格的URL。我可以得到一个页面来呈现,但是我从Tomcat中获得无限递归,我怀疑它来自根servlet映射'/ url-pattern>'。 –
2011-08-26 14:33:08