mvc:视图控制器导致在Spring Tiles2中找不到页面

mvc:视图控制器导致在Spring Tiles2中找不到页面,spring,model-view-controller,dispatcher,tiles2,Spring,Model View Controller,Dispatcher,Tiles2,我有一个基于Spring3.0.6的webapp,它在Tomcat7.0上运行良好 web.xml对调度程序的定义如下: <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>

我有一个基于Spring3.0.6的webapp,它在Tomcat7.0上运行良好

web.xml对调度程序的定义如下:

<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
我做错了什么


非常感谢

我的应用程序中的问题是由于视图名称自动解析造成的。我的@Controller中带注释的方法返回void,框架尝试使用请求路径猜测tiles视图名称

我修改了带注释的方法,如下所示,返回一个字符串:


通过此更改,一切正常。

您可以在DispatcherServlet.doDispatch中设置断点,然后查看发生的情况:嗨,Boris,我尝试过调试,但是DispatcherServlet的内部工作非常复杂,难以理解。问题是我的MVC控制器中的方法无效,并且没有返回任何字符串,因此框架尝试使用路径自动解析视图。我更改了此选项,并显式返回Tiles2视图名称,所有操作都再次正常工作。我吸取了教训,永远不要让春天猜到任何事-好啊请将您的结果作为答案发布,然后关闭问题。
<bean id="tilesViewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  <property name="viewClass"
      value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>

<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
  <property name="definitions">
    <list>
      <value>/WEB-INF/tiles-def.xml</value>
    </list>
  </property>
</bean>
21:34:22,128  WARN PageNotFound:947 – No mapping found for HTTP request with URI [/myapp/home.html] in DispatcherServlet with name 'dispatcher'
@RequestMapping(value="/page", method = RequestMethod.GET)
public String showForm(HttpServletRequest request, Model model) {
    // TO BUSINESS LOGIC

    // return tiles view name as configured in 'tiles-def.xml'
    return "my_tiles_view_name";
}