Список обслуживания изображений при весенней загрузке - PullRequest
0 голосов
/ 16 июня 2020

Я создал папку ресурсов внутри ресурсов. Я хочу отобразить список имен изображений в папке с ресурсами. Щелкнув имя изображения, он должен открыть конкретное изображение. Я могу получить доступ к изображениям отдельно, но как отобразить все изображения в качестве проводника файлов.

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете использовать ResourcePatternResolver:

@Controller
@RequestMapping("/assets")
public class AssetController {

    @Autowired
    private ResourcePatternResolver resolver;

    @GetMapping("")
    @ResponseBody
    public String resources() throws IOException {
        final String root = resolver.getResource("classpath:/static/assets").getURI().toString();

        final Resource[] resources = resolver
            .getResources("classpath:/static/assets/**/*.png");
        final List<String> fileNames = Stream.of(resources)
            .filter(Resource::isFile)
            .map(r -> {
                try {
                    return r.getURI().toString().replace(root, "");
                } catch (final IOException e) {
                    throw new IOError(e);
                }
            })
            .collect(Collectors.toList());

        final StringBuilder html = new StringBuilder();
        html.append("<html>");
        html.append("<ul>");
        for (final String fileName : fileNames) {
            html.append("<li>");
            html.append("<a href=\"/assets" + fileName + "\">" + fileName + "</a>");
            html.append("</li>");
        }
        html.append("</ul>");
        html.append("</html>");
        return html.toString();
    }

}
...