Witam,
Mam dwie klasy Project i Task w relacji jeden do wielu. Najpierw w formularzu dodaje sobie projekt, w kolejnym dodaje sobie do niego zadania. Formularz się wyświetla i zadanie się dodaje, tylko relacja się nie zapisuje, idProject jest null. Te 3 linię w komentarzu, pewnie powinny być w post, tylko skąd tam id projektu wziąć?
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String getAddNewTaskForm(Model model, @RequestParam("idProject") Long id) {
Task newTask = new Task();
// Project project = projectService.findById(id);
// newTask.setProject(project);
// projectService.update(project);
model.addAttribute("newTask", newTask);
return "addTask";
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String processAddNewTaskForm(@ModelAttribute("newTask") Task
newTask, BindingResult result) {
String[] suppressedFields = result.getSuppressedFields();
if (suppressedFields.length > 0) {
throw new RuntimeException("Próba wiązania niedozwolonych pól: " + StringUtils.arrayToCommaDelimitedString(suppressedFields));
}
taskService.save(newTask);
return "redirect:all";
}
Formularz
<form:form modelAttribute="newTask" cssClass="form-register">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Nazwa</label>
<div class="col-sm-10">
<form:input path="name" cssClass="form-control"/>
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2 control-label">Opis</label>
<div class="col-sm-10">
<form:textarea path="description" cssClass="form-control"/>
</div>
</div>
<div class="form-group">
<label for="dateStart" class="col-sm-2 control-label">Data: </label>
<div class="col-sm-10">
<form:input type="date" path="dateStart" cssClass="form-control"/>
</div>
</div>
<div class="form-group">
<label for="dateEnd" class="col-sm-2 control-label">Data: </label>
<div class="col-sm-10">
<form:input type="date" path="dateEnd" cssClass="form-control"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<input type="submit" value="<spring:message code="page.save"/>"
class="btn btn-lg btn-primary pull-right"/>
</div>
</div>
</form:form>
Wybór projektu:
A tutaj tabela zadań z bazy.