есть столбец таблицы который выводит список возможных статусов проекта
<form th:action="@{'/tasks/' + ${project.id} + '/edit'}" method="POST">
<input id="taskStatus" name="task" type="hidden" th:value="${t.id}"/>
<select name="TaskStatus" th:field="${taskStatusName}">
<option th:each="s : ${findAllStatus}" th:value="*{s}" th:text="${s.status}" th:name="TaskStatus"></option>
</select>
<button type="submit" class="add">Add project</button>
</form>
но пытаюсь заставить выводить значение по умолчанию - текущий статус задачи выполняя проверку типа
<select name="TaskStatus" th:field="*{t.status.id}">
но выходит ошибка
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 't' available as request attribute
как я понял он не может найти объект задачи? но всю таблицу я уже пропустил через for each. помогите пожалуйста разобраться
ИЗМЕНЕНИЯ добавил в метод GET жестко определенный статус для теста
@RequestMapping(value = "/tasks/{project}", method = RequestMethod.GET)
@ResponseBody
public ModelAndView index(@PathVariable ("project")Project project) {
ModelAndView modelAndView = new ModelAndView();
List<Task> findAll = taskService.findAll(project);
List<TaskStatus> findAllStatus = taskStatusService.findAll();
TaskStatus taskStatusName = taskStatusRepository.findByStatus("In work");
modelAndView.addObject("taskStatusName", taskStatusName);
modelAndView.addObject("findAllTasks", findAll);
modelAndView.addObject("findAllStatus", findAllStatus);
final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
modelAndView.addObject("user", userService.findByEmail(currentUser));
modelAndView.setViewName("tasks");
return modelAndView;
}
ошибка исчезла но значение по умолчанию не подтягивается
Проблема решена, использовал th:selected надеюсь кому поможет
<form th:action="@{'/tasks/' + ${project.id} + '/edit'}" method="POST">
<input id="taskStatus" name="task" type="hidden" th:value="${t.id}"/>
<select name="TaskStatus" >
<option th:each="s : ${findAllStatus}" th:value="${s}" th:text="${s.status}"
th:name="TaskStatus" th:selected="${s.id == t.taskStatus.id}"></option>
</select>
<button type="submit" class="add">Add project</button>
</form>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости