代码之家  ›  专栏  ›  技术社区  ›  Ichiro Furusato

如何使用RESTful URL创建Spring3+Tiles 2 webapp?

  •  5
  • Ichiro Furusato  · 技术社区  · 14 年前

    我在用Spring3.0MVC解析URL方面花了不少时间。我只是在构建一个地狱世界来尝试如何在春天构建一个宁静的webapp,这在理论上并不复杂。

    我所能找到的所有例子都是基于关注文件扩展名(“*.htm”或“*.do”)的配置,包括一个人工目录名前缀(“/foo”)或甚至以一个点(丑陋的)作为路径前缀,所有的方法都使用一些人工regex模式作为到资源的信号。奥尔弗。对于REST方法,我希望避免所有的垃圾,只使用应用程序的自然URL模式。我假设(可能是错误的)在web.xml中,我设置了一个“/*”的URL模式,并将所有内容传递给DispatcherServlet进行解析,然后仅仅依赖我的控制器中的URL模式。

    我无法可靠地让解析器捕获URL模式,在所有的测试中,这会导致资源未找到错误、堆栈溢出(循环)或某种不透明的Spring3 servletException堆栈跟踪-我对Spring的一个持续的挫折通常是错误消息不是很有帮助。

    我想用瓦片2分解器。我已经在WEB-INF/VIEWS/中找到了我的*.jsp文件,并且在应用程序根目录下有一个单行index.jsp文件,它重定向到我的layout.xml(tiles 2配置程序)设置的索引文件。

    我执行所有普通弹簧3高级配置:

    <mvc:annotation-driven />
    
    <mvc:view-controller path="/" view-name="index"/>
    
    <context:component-scan base-package="com.acme.web.controller" />
    

    …然后是urlbasedviewresolver、internalresourceviewresolver、urlfilenameviewcontroller等的各种组合和配置,以及我的tiles 2配置文件中的各种差异。然后在我的控制器中,我尝试获取我的URL模式。问题是,我甚至不能可靠地让解析器捕获要发送到控制器的模式。

    这已经持续了好几天,在我认为非常容易实现的事情上没有真正的进展。虽然我认为这应该是一个简单的(几乎是一个默认的)配置,但我可能会同时尝试做太多的事情。我只是想创建一个简单的地狱世界类型的应用程序,我不希望这是火箭科学。

    有没有人知道一个在线例子:显示一个简单的Spring3 MVC+Tiles 2 Web应用程序,它使用RESTful URL(即,避免强制的URL模式,如文件扩展名、添加的目录名或点)和RELIS仅仅依靠Spring3代码/注释(即SpringMVC本身之外的任何东西)来实现这一点? 有简单的方法吗?

    非常感谢你的帮助。

    3 回复  |  直到 12 年前
        1
  •  1
  •   Gene De Lisa    13 年前
    <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

        2
  •  0
  •   Yasir Shabbir Choudhary    14 年前

    您可以尝试MVC-Ajax Spring3示例。

    https://src.springframework.org/svn/spring-samples/

        3
  •  0
  •   Anna    13 年前

    Spring示例应用程序:Petcare以一种宁静的方式定义了链接。 您可以从以下位置下载: https://src.springframework.org/svn/spring-samples/ 步骤如下: 1。定义tiles配置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. 定义嵌套在UrlBasedView冲突解决程序中的Tiles视图类冲突解决程序

      value=“org.springframework.web.servlet.view.tiles2.tilesView”/>

    2. 为每个布局/页面等定义tiles.xml定义文件。