2010-06-10 80 views

回答

4

號由於WEB-INF/freemaker/email在類路徑中,你需要通過ServletContext。至於你提到Resource,你可以使用:

Resource resource = new ServletContextResource(servletContext, resourcePath); 

只是不通過ServletContext到服務層。改爲通過Resource

如果您想從類路徑中獲取模板,請將它放在那裏。也就是說,例如:

WEB-INF /班/ freemaker的/電子郵件

然後你可以使用ClassPathResource

+0

特別是在這種情況下,我試圖獲得freemarker模板 - 即使使用ClasspathResource,並將完整的文件名傳遞給Freemarker模板,我得到異常。我只是尋找從類路徑獲取ftl的最簡單方法。你有什麼想法,或者我應該創建一個新的問題? – wuntee 2010-06-10 21:22:24

+0

@wuntee查看我的更新 – Bozho 2010-06-10 21:44:46

1

您可以實現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; 
    } 

}