Я работаю над приложением, в котором я хочу добавить ученика в еду, используя раскрывающийся список в форме. Мой код выглядит следующим образом:
Meal.java
@Entity
public class Meal {
@Id
@GeneratedValue
private Long id;
@OneToOne
private Student mealCook;
private String mealName;
private int mealPrice;
Student.java
@Entity
public class Student {
@Id
@GeneratedValue
private Long id;
private String studentName;
MealController.java
@Controller
@RequestMapping("/m")
public class MealController {
private final MealRepository mealRepository;
private final StudentRepository studentRepository;
public MealController(MealRepository mealRepository, StudentRepository studentRepository){
this.mealRepository = mealRepository;
this.studentRepository = studentRepository;
}
@GetMapping
public ModelAndView list(){
Iterable<Meal> meals = this.mealRepository.findAll();
return new ModelAndView("meals/list" , "meals", meals);
}
@GetMapping("{id}")
public ModelAndView view(@PathVariable("id") Meal meal) {
return new ModelAndView("meals/view", "meal", meal);
}
@GetMapping(params = "form")
public String createForm(@ModelAttribute Meal meal) {
return "meals/form";
}
@PostMapping
public ModelAndView create(@Valid Meal meal, BindingResult result,
RedirectAttributes redirect) {
Iterable<Student> students = this.studentRepository.findAll();
if (result.hasErrors()) {
return new ModelAndView("meals/form", "formErrors", result.getAllErrors());
}
meal = this.mealRepository.save(meal);
redirect.addFlashAttribute("globalMessage", "view.success");
return new ModelAndView("redirect:/m/{meal.id}", "meal.id", meal.getId());
}
И, наконец, мой взгляд -> form.html
<form id="mealForm" th:action="@{/m/(form)}" th:object="${meal}" action="#" method="post">
<div class="form-group">
<label for="mealName">Meal Name</label>
<input type="text" th:field="*{mealName}" th:class="${'form-control' + (#fields.hasErrors('mealName') ? ' is-invalid' : '')}">
</div>
<div class="form-group">
<label for="mealCook">Meal Cook</label>
<select th:field="*{mealCook}">
<option th:each= ??
th:value= ??
th:text= ??</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Теперь цель состоит в том, чтобы добавить 1 ученика к еде, выбрав studentName из выпадающего меню в форме.
Но я изо всех сил пытаюсь передать список студентов из контроллера в представление и отобразить его в раскрывающемся списке.