Spring MVC动态视图+处理非现有视图

时间:2013-07-12 03:55:06

标签: java spring spring-mvc

我将实现一个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')

1 个答案:

答案 0 :(得分:1)

不是UrlBasedViewResolver和朋友。一旦链到达它,您就会被提交 - 如果查看doesn't exist,您将被定向到您的容器配置的任何404页面。

  

注意:链接ViewResolvers时,UrlBasedViewResolver始终需要是最后一个,因为它将尝试解析任何视图名称,无论底层资源是否确实存在。