У меня есть объект, содержащий HashMap и некоторые другие переменные.Это класс, определяющий его:
public class Student {
private String firstName;
private String lastName;
private String country;
public HashMap<String,String> countryOptions;
public Student()
{
// populate country options: used ISO country code
countryOptions = new HashMap<String, String>() {};
countryOptions.put("BR", "Brazil");
countryOptions.put("FR", "France");
countryOptions.put("DE", "Germany");
countryOptions.put("IN", "India");
}
// getters and setters...
}
Я хочу отправить этот объект в форму в качестве модели, связать данные из этой формы с этим объектом и затем отобразить их на странице подтверждения.К сожалению, у меня проблема с заполнением раскрывающегося списка записями из HashMap.
Мой класс контроллера:
@Controller
@RequestMapping("/student")
public class StudentController {
@RequestMapping("/showForm")
public String showForm(Model theModel)
{
Student theStudent = new Student();
theModel.addAttribute("student", theStudent);
theModel.addAttribute("country", theStudent.countryOptions);
return "student-form";
}
@RequestMapping("/save")
public String save(@ModelAttribute("student") Student theStudent)
{
return "student-confirmation";
}
}
student-form.html:
<body>
<form th:action="@{save}" th:object="${student}" method="post">
<input type="text" name="firstName" th:field="${student.firstName}"/>
<input type="text" name="lastName" th:field="${student.lastName}"/>
<select name="country" th:field="${student.country}">
<option th:each="country : ${student.countryOptions}" th:value="${student.countryOptions}" th:text="${student.countryOptions}"></option>
</select>
<input type="submit"/>
</form>
</body>
Мой результат выглядит следующим образом
Что я делаю не так?