Spring Web: получение файла из веб-контекста с помощью Resource? - PullRequest
4 голосов
/ 11 июня 2010

Есть ли способ получить ресурс в весеннем веб-приложении, используя простой ресурс? Я пытаюсь не передавать никакого контекста, и мне нужно получить файл из каталога WEB-INF / freemarker / email /.

Ответы [ 2 ]

4 голосов
/ 11 июня 2010

Нет.Поскольку WEB-INF/freemaker/email это , а не на пути к классам, вам нужно передать ServletContext.Как вы упомянули Resource, вы можете использовать:

Resource resource = new ServletContextResource(servletContext, resourcePath);

Только не передавайте ServletContext на сервисный уровень.Вместо этого передайте Resource.

Если вы хотите получить шаблон из пути к классам, поместите его туда.Это, например, в:

WEB-INF / classes / freemaker / email

Тогда вы можете использовать ClassPathResource

1 голос
/ 17 декабря 2010

Вы можете реализовать интерфейс org.springframework.context.ResourceLoaderAware в своем классе и получить доступ к ResourceLoader. Это довольно просто в использовании.

public class SomeService implements ResourceLoaderAware {
   private ResourceLoader resourceLoader;

   public void doSomething() {
       Resource skin = resourceLoader.getResource("myfile.txt");
   }

    @Override
    public void setResourceLoader(ResourceLoader resourceLoader) {
        this.resourceLoader = resourceLoader;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...