我将实现一个Spring MVC控制器,该控制器使用动态视图作为参数传递来查看:
@Controller
@RequestMapping("/page")
public class PageController {
@RequestMapping(value = "/{page}", method = {RequestMethod.GET})
public ModelAndView page(@PathVariable("page")String page) {
System.out.println("page = " + page);
return new ModelAndView(page);
}
}
视图由UrlBasedViewResolver解决:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="cache" value="false"/>
</bean>
当请求不存在的视图时,有没有办法返回默认视图?也许要检查是否存在视图,然后返回new ModelAndView('requested_page_not_found')
?
答案 0 :(得分:1)
不是UrlBasedViewResolver
和朋友。一旦链到达它,您就会被提交 - 如果查看doesn't exist,您将被定向到您的容器配置的任何404页面。
注意:链接ViewResolvers时,UrlBasedViewResolver始终需要是最后一个,因为它将尝试解析任何视图名称,无论底层资源是否确实存在。