Spring Web: Получаване на файл от уеб контекст с помощта на ресурс?

Има ли начин да получите ресурс в пролетно уеб приложение с помощта на прост ресурс? Опитвам се да не предавам никакъв контекст и трябва да получа файл от директорията WEB-INF/freemarker/email/.


person wuntee    schedule 10.06.2010    source източник


Отговори (2)


Не. Тъй като WEB-INF/freemaker/email не е в classpath, трябва да подадете ServletContext. Както споменахте Resource, можете да използвате:

Resource resource = new ServletContextResource(servletContext, resourcePath);

Просто не предавайте ServletContext на сервизния слой. Вместо това предайте Resource.

Ако искате да получите шаблона от classpath, поставете го там. Това е, например, в:

WEB-INF/класове/freemaker/имейл

След това можете да използвате ClassPathResource

person Bozho    schedule 10.06.2010
comment
конкретно в този случай се опитвам да получа шаблон на freemarker - дори използвайки ClasspathResource и предавайки пълното име на файла на шаблона на Freemarker, получавам изключения. Просто търся най-лесния начин да получа ftl от classpath. Имате ли някаква идея или трябва да създам нов въпрос? - person wuntee; 11.06.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;
    }

}
person Pavel Molchanov    schedule 16.12.2010