Доступ ко всем шаблонам на classpath весной - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь получить все шаблоны, которые я сохранил в папке шаблонов в весенних ресурсах / шаблонах. ниже то, что я пытаюсь, я пытаюсь получить доступ с помощью / getTeamplateList, но он ничего не дает

 @RequestMapping(value = "/getTemplateList", produces = "application/json")
public List getTemplates() throws IOException {

    List s = new ArrayList();
   File[] resourceFolderFiles = getResourceFolderFiles("classpath:/templates/");
    s.addAll(Arrays.asList(resourceFolderFiles));
    return s;
}

private static File[] getResourceFolderFiles (String folder) {
    ClassLoader loader = Thread.currentThread().getContextClassLoader();
    URL url = loader.getResource(folder);
    String path = url.getPath();
    return new File(path).listFiles();
}

1 Ответ

0 голосов
/ 03 сентября 2018

Вы можете сделать это следующим образом:

@Autowired
private ResourceLoader resourceLoader;

final List<String> result = Arrays.stream(loadResources()).map(resource -> resource.getFilename()).collect(Collectors.toList());


private Resource[] loadResources() throws IOException {
    return ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources("classpath:/templates/*.html");
}

Это напечатает

[
  "template1.html",
  "template2.html"
...
]

в ответе.

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