как передать выбранное значение из <select>в код Java - PullRequest
0 голосов
/ 03 ноября 2019

Как передать значение в коде Java при выборе опции?

<select>
        <option th:each="city:${cities}"
                th:value="${city.value}"
                th:utext="${city.name}"/>
</select>

1 Ответ

0 голосов
/ 03 ноября 2019

В вашем шаблоне с чабрецом вам нужно сделать 3 вещи:

  1. Необходимо связать городской объект (вам нужна модель с именем 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 () и т. Д.

Надеюсь, это поможет !!

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