我有一个基于Spring 3.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>dispatcher以通常的方式定义视图解析器:
<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>我有一个用@RequestMapping("/home")注释的控制器和一个用tiles-def.xml定义的"home"视图。当我将浏览器指向/myapp/home.html时,Tiles页面就会打开。
如果我将<mvc:resources mapping="/resources/**" location="/resources/" />或<mvc:view-controller path="/" view-name="home.html"/>添加到dispatcher xml文件中,将浏览器指向/myapp/home.html会得到一个404。日志上写着:
21:34:22,128 WARN PageNotFound:947 – No mapping found for HTTP request with URI [/myapp/home.html] in DispatcherServlet with name 'dispatcher'我做错了什么?
非常感谢
发布于 2011-10-18 15:20:24
我的应用程序中的问题是由于视图名称自动解析造成的。我的@Controller中带注释的方法返回void,框架尝试使用请求路径猜测tiles视图名称。
我修改了带注释的方法,如下所示,返回一个String
@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";
}有了这样的更改,一切都可以正常工作。
https://stackoverflow.com/questions/7339711
复制相似问题