Html-форма Spring Thymeleaf + Операции Crud

0

Вопрос

Я новичок в Spring Framework и в настоящее время пытаюсь разработать простое приложение, в котором владельцы ресторанов могут добавлять блюдо в основную базу данных, войдя в систему и вменяя данные блюда в Html-форму (с помощью Thymeleaf). (название блюда, цена, без глютена = правда и т.д.)

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

Я пытаюсь изучить учебники на Youtube, однако все они, похоже, используют @RestController и @Requestbody и используют Postman для отправки запросов JSON. Мне трудно адаптировать это к моей Html-форме.

Я использовал аннотацию @controller для простых методов "сохранения", но когда я исследую "как включить внешний ключ в данные, добавленные в базу данных" (т. Е. Включить "идентификатор ресторана" в качестве внешнего ключа в классе "блюдо"), все учебные пособия используют @RequestController и запросы JSON в Postman.

Поскольку я пытаюсь создать полезное приложение, отправка запросов в Postman не кажется хорошим решением.

Я думаю, что проблема, с которой я сталкиваюсь в соответствии с другими постами, заключается в следующем:

"If you use template engine like Thymeleaf it will not work with @RestController because of @ResponseBody which included in this annotation" – Sonique

"@ResponseBody makes the returned objects to something that could be in the body, e.g. JSON or XML"  – Martin Thoma

Я пытался удалить @RequestBody и изменить его на @RequestParam, но получаю ошибки.

Есть ли какие-либо обходные пути для решения моей проблемы? например, использование другого формата файла для формы "добавить новое блюдо" или не использование Thymeleaf?

Любая помощь/совет были бы очень признательны!

crud html java spring-data-jpa
2021-11-22 23:02:00
1

Лучший ответ

1

Если вы хотите использовать HTML с Thymeleaf, и класс должен аннотировать @Controller, а параметр метода, обрабатывающий объект из ФОРМЫ, которой вы хотите управлять, должен быть @ModelAttribute("").

2021-11-22 23:51:11

Спасибо, теперь это имеет смысл!
Bronwyn Young

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................