2010-04-20 41 views
5

我有一段时间用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本身之外没有任何内容)来完成此操作? 有没有简单的方法来做到这一点?

非常感谢您的帮助。

+0

我也正在尝试使用Spring 3 Web MVC框架与使用Apache瓷砖Spring的REST风格的URL。我可以得到一个页面来呈现,但是我从Tomcat中获得无限递归,我怀疑它来自根servlet映射'/'。 – 2011-08-26 14:33:08

回答

0

弹簧示例应用:宠物食品具有在宁静的方式定义的联系。 你可以从这些下载这些:https://src.springframework.org/svn/spring-samples/ 步骤是: 1。定义瓦片配置Bean(XML配置文件)

<!-- Initializes the Apache Tiles CompositeView system --> 
    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
     <beans:property name="definitions"> 
      <beans:value> 
       /WEB-INF/**/tiles.xml 
      </beans:value> 
     </beans:property> 
     <beans:property name="checkRefresh" value="true" /> 
    </beans:bean> 
  1. 定义瓦片查看嵌套在作为UrlBasedViewResolver

    值=“org.springframework.web.servlet.view.tiles2类解析器。 TilesView的” />

  2. 为每个布局定义/页等

  3. 的tiles.xml定义文件
1
<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.tiles2.TilesViewResolver" 
      p:order="0"/> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles-defs/tilesConfig.xml</value> 
      </list> 
     </property> 
</bean> 

TilesViewResolver

相关问题