如何检查是否存在看法?(How do I check if a view exists?)

2019-09-28 07:35发布

我想,以检查是否视图之前,我确实解决它的存在。 这里是我的控制器,与我喜欢它的工作的一些意见。

@RequestMapping(value="/somethinghere/")
    public String getSomething(Model inModel,
            @RequestParam(value="one", defaultValue=Constant.EMPTY_STRING) String one,
            @RequestParam(value="two", defaultValue = Constant.EMPTY_STRING) String two) {
        String view = one + two;
         if (a view with name equal to one + two exists) {
            return view;
        } else {
            return "defaultview";
        }                
}

我想回到一个观点,但只有当我已经验证确实是有与定义名称的视图。 我该怎么做呢?

Answer 1:

首先,考虑视图的分辨率是如何在春季完成。 假设你正在使用InternalResourceViewResolver ,默认或明确声明,一个InternalResourceView创建的对象和路径的资源是通过连接解决InternalResourceViewResolver的前缀,视图名(由hanbdler返回),和后缀。

这个View返回的对象。 请注意, InternalResourceViewResolver该物体不可能是null ,因此ViewResolver链接无法实现。 在DispatcherServlet再使用返回的View对象的render()方法创建HTTP响应。 在这种情况下,它会使用RequestDispatcher并向其转交由视图的名字所描述的资源。 如果资源不存在,该Servlet容器中会产生404响应。

鉴于这一切,除非你View的东西比一个完全不同jsp或者相关的资源,有没有办法来检查是否存在的资源,直到容器居然转发了该请求RequestDispatcher

你将不得不重新考虑你的设计。



文章来源: How do I check if a view exists?