在spring控制器中指定视图文件的完整路径,而不是使用视图解析器

时间:2014-04-16 12:18:24

标签: spring spring-mvc

是否可以在不使用视图解析器的情况下在控制器中指定视图文件的完整路径?

假设我只有一个文件,比如我的视图中的XML文件,以及我想要为该XML文件提供的特定请求。通过使用视图解析器,我无法找到一种方法来获取这样的文件和服务器直接像我一样服务jsp。那么,对于这样的情况,我可以做一些事情,我在控制器中指定完整路径,就像我们在servlet的getRequestDispatcher中所做的一样吗?

我的视图解析器目前仅针对JSP配置,我无法使用视图解析器查找处理此情况的视图,我的视图解析器如下所示:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
    <value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
    <value>.jsp</value>
</property>

目前我在控制器中使用getRequestDispatcher?有没有任何基于弹簧的替代方案?

1 个答案:

答案 0 :(得分:2)

Spring MVC允许您创建具有不同返回类型的请求处理方法,请参阅reference guide。而不是String从您的方法返回View直接指向您的资源。当您返回View实例时,Spring MVC将不会查询ViewResolver,而只是按原样使用该视图。对于你的情况,你可能想要使用InternalResourceView

@RequestMapping
public View yourRequestHandlingMethod() {
    return new InternalResourceView("path/to/resource");   
}