首页 > 解决方案 > Spring XsltViewResolver 前缀路径

问题描述

我想在 SpringBoot 应用程序中使用 XSLT 作为我的视图技术。我正在创建 bean,XsltViewResolver但我不确定如何为此设置前缀ViewResolver。我在网上看到一些例子,其中 xsl 文件WEB-INF/xsl如下所示:

  @Bean
  public ViewResolver xsltViewResolver() {
      XsltViewResolver viewResolver = new XsltViewResolver();
      viewResolver.setPrefix("/WEB-INF/xsl/");
      viewResolver.setSuffix(".xslt");
      return viewResolver;
  }

但是因为我有 JAR 包装并且没有 WEB-INF 文件夹,所以我把它们放进去src/main/resources/templates,我的前缀看起来像这样:

    viewResolver.setPrefix("/resources/templates/");

它不起作用,当我的控制器被调用时,我有FileNotFound异常:

java.io.FileNotFoundException: Could not open ServletContext resource [/employees.xsl]

如何设置正确的前缀?

标签: javaspringspring-bootspring-mvcxslt

解决方案


您的视图解析器 bean 应该是

 @Bean
      public ViewResolver xsltViewResolver() {
          XsltViewResolver viewResolver = new XsltViewResolver();
          viewResolver.setPrefix("classpath:/templates/");
          viewResolver.setSuffix(".xslt");
          return viewResolver;
      }

推荐阅读