Tenho uma lista “professor
” e outra “materia
”, já tentei de tudo, mas não foi quero colocar o nome no professor, selecionar a matéria que ele leciona e salvar.
Na classe professor
:
@OneToMany(mappedBy="professor")
private List<Materia> materias;
na classe materia:
@ManyToOne
@JoinColumn(name="professor_id")
private Professor professor;
no controller
@RequestMapping(method = RequestMethod.POST)
public ModelAndView salvar(Professor professor) {
List<Materia> todasMaterias = materias.findAll();
ModelAndView mv = new ModelAndView("/Professor");
mv.addObject("materias", todasMaterias);
professores.save(professor);
ja usei no controle também com o attribute
, mas nada funfou, estou usando so a opção de cima no momento.
@ModelAttribute("todasMaterias")
public List<Materia> todasMaterias() {
return materias.findAll();
}
e o html:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="comum/LayoutPadrao">
<head>
<title>Test</title>
</head>
<section layout:fragment="conteudo01">
<form class="form-horizontal"
method="POST"
action="/professores/novo"
th:object="${professor}">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="cleanfix">
<h1 class="panel-title">testes de professor</h1>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="matricula" class="col-sm-1 control-label">Matricula
</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="matricula"
name="matricula" />
</div>
</div>
<div class="form-group">
<label for="nome" class="col-sm-1 control-label">Nome: </label>
<div class="col-sm-2">
<input type="text" class="form-control" id="pessoa.nome"
name="pessoa.nome" />
</div>
</div>
<div class="form-group">
<label for="status" class="col-sm-2 control-label">Materias</label>
<div class="col-sm-2">
<select id="materia" class="from-control" th:field="*{materia}">
<option th:each="materia : ${materias}" th:text="#{materia}" th:value="${materia}"></option>
</select>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">Salvar</button>
</div>
</div>
</div>
</form>
</section>
</html>