В вашем шаблоне с чабрецом вам нужно сделать 3 вещи:
- Необходимо связать городской объект (вам нужна модель с именем city) с элементом формы:
<form th:action="@{/cities}" method="POST" th:object="${city}">
Добавьте модель к контроллеру, который обрабатывает ваше представление формы (получите контроллер):
model.addAttribute("city", new City());
Добавьте поле th: в ваш HTML-тег, соответствующий имени поля свойства вашей модели:
<select th:field="*{name}">
И в вашем POST-контроллере вам нужночтобы добавить объект вашего города в качестве параметра / аргумента и вызвать службу, которая сохраняет ваш объект в базе данных:
@RestController
public class CityController {
@Autowired
CityService cityService;
@RequestMapping(value = "/cities", method = RequestMethod.POST)
public String addCity(City city) { cityService.save(city); }
}
Обратите внимание, что значение "/ towns" должно совпадать с действием формы "@ {/ towns"} ".
Тогда в вашем классе обслуживания у вас будет свой метод сохранения и ваш cityRepository:
@Service
public class CityService {
@Autowired
CityRepository cityRepository;
public City save(City city) { cityRepository.save(city); }
}
Наконец, вам нужен класс репозитория, который расширяется либо из CrudRepository, либо из JpaRepository:
@Repository
public interface CityRepository extends CrudRepository<City, Long> {
}
Благодаря расширению из CrudRepository у вас будет доступ к методам save (), findAll (), findById () и т. Д.
Надеюсь, это поможет !!