@GoshaN_V
Студент информационных технологий.

Как правильно вставлять картинки в html в Spring?

Доброго времени суток. Делаю не большой сайт про художников и их картины. Появился вопрос. Как вставить изображение допустим в эту форму где находиться надпись "Thumbnail" ?
Вот данное окошко в которое хочется вставить изображение (картину художника) 60bfaf0965655567158498.png
Так выглядит сайт полностью: 60bfafeba2e13664630896.png
<div class="album py-5 bg-light">
        <div class="container">

            <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
                <div class="col">
                    <div class="card shadow-sm">
                        <svg class ="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Placeholder: Thumbnail" preserveAspectRatio="xMidYMid slice" focusable="false"><title>Placeholder</title><rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef" dy=".3em">Thumbnail</text></svg>

                        <div class="card-body">
                            <p class="card-text">Siskin</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group">
                                    <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
                                    <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
                                </div>
                                <small class="text-muted">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col">
                    <div class="card shadow-sm">
                        <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Placeholder: Thumbnail" preserveAspectRatio="xMidYMid slice" focusable="false"><title>Placeholder</title><rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef" dy=".3em">Thumbnail</text></svg>

                        <div class="card-body">
                            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group">
                                    <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
                                    <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
                                </div>
                                <small class="text-muted">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col">
                    <div class="card shadow-sm">
                        <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Placeholder: Thumbnail" preserveAspectRatio="xMidYMid slice" focusable="false"><title>Placeholder</title><rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef" dy=".3em">Thumbnail</text></svg>

                        <div class="card-body">
                            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group">
                                    <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
                                    <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
                                </div>
                                <small class="text-muted">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>

Я так понимаю так же нужно настраивать Thymeleaf?
Хотелось бы понять как это сделать, не судите строго, в Spring'e я новенький.
Благодарю заранее!
  • Вопрос задан
  • 2198 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Spring
Java Software Engineer
Добрый день.
Прежде всего настоятельно рекомендую провести поиск по этому сайту, а также погуглить, так как ответ на ваш вопрос легко ищется поисковиком и в общем-то найдете кучу ответов. Помню, как буквально пару месяцев назад здесь же отвечал на аналогичный вопрос.

Теперь, что касается вашего вопроса:

Я так понимаю так же нужно настраивать Thymeleaf?

Шаблонизатор вам нужен в любом случае. Будь то thymeleaf или freemarker, mustache и др. Можете взять thymeleaf.

Предположу, что ожидается некое динамическое добавление картинок в шаблон. Т.е. художники загружают свои работы, а далее они отображаются в шаблоне.
Если так, то разделим вашу задачу на несколько частей:
1) Реализовать загрузку картинок, хранение данных о картинках в БД (например, путь к картинке)
https://spring.io/guides/gs/uploading-files/
https://stackabuse.com/uploading-files-with-spring-boot
https://www.baeldung.com/spring-file-upload
2) Реализовать вывод картинки в шаблоне.
В данном вашем примере у вас выводится изображение в формате svg (placeholder)
Вам нужно вместо нее добавить img тег
Примерно так:
<img th:src="${image}" alt="Картинка"/>
Конечно же вместо переменной image вам нужно подставить свою переменную.
Если нужно вывести блок со всеми работами художника, то вам нужно будет вывести цикл с его работами.
Итерируем по списку работ художника - https://habr.com/ru/post/351132/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы