spring - 在 spring Controller 中指定 View 文件的完整路径,而不是使用 View 解析器

标签 spring spring-mvc

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

假设我只有一个文件,比如在我的 View 中有一个 XML 文件,对于一个特定的请求,我想提供该 XML 文件。通过使用 View 解析器,我无法找到一种方法来获取这样的文件并像我服务 jsp 一样直接服务器。那么,对于这种情况,我可以像以前在 servlet 的 getRequestDispatcher 中那样在 Controller 中指定完整路径吗?

我的 View 解析器目前仅针对 JSP 配置,我无法找到使用 View 解析器来处理这种情况的 View ,我的 View 解析器如下所示:

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

目前我在 Controller 中为此使用 getRequestDispatcher?有没有基于 spring 的替代方案?

最佳答案

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

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

关于spring - 在 spring Controller 中指定 View 文件的完整路径,而不是使用 View 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23109267/

相关文章:

java - 为 Spring @Autowired 指定顺序

Spring 4 升级 - 现在缺少 CommonsHttpInvokerRequestExecutor 类

java - Dockerized Zuul 网关无法连接到 dockerized Eureka 服务器

spring - AccessDeniedHandler 重定向到登录页面

java - JSP 中类似 PHP 的输出缓冲(让子模板影响主模板)

java - 为什么我在使用 Quartz job Scheduler 时在 contextInitialized() 方法中遇到空指针异常

java - jdbcTemplate 的 setMaxRows 如何工作

java - 读取Spring Validator类中属性文件的内容

java - Spring 3 MVC 与带注释的 DWR 集成

java - 如何让Spring security在CAS服务器成功验证后将用户重定向到原始请求的页面