Boa tarde estou querendo popular um select com informações que tenho banco de dados:
Controller
@RequestMapping("/pacientes")
public class PacientesController {
@Autowired
private PacienteDAO pacienteDAO;
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.addValidators(new PacienteValidation());
}
@RequestMapping("/novo")
public ModelAndView form(Paciente paciente) {
ModelAndView modelAndView = new ModelAndView("pacientes/novo");
return modelAndView;
}
// Popular select with hibernate
/**
@RequestMapping("/novo")
public String select(Model model) {
model.addAttribute("sexos", daoGeral.listaSexo());
return "pacientes/novo";
}**/
@RequestMapping(value="/novo", method=RequestMethod.POST)
public ModelAndView gravar(@Valid Paciente paciente,BindingResult result, RedirectAttributes redirectAttributes) {
if(result.hasErrors()) {
return form(paciente);
}
pacienteDAO.gravar(paciente);
redirectAttributes.addFlashAttribute("sucesso", "Paciente cadastrado com sucesso!");
return new ModelAndView("redirect:lista");
}
@RequestMapping(value="/lista",method=RequestMethod.GET)
public ModelAndView listar(){
List<Paciente> pacientes = pacienteDAO.listar();
ModelAndView modelAndView = new ModelAndView("pacientes/lista");
modelAndView.addObject("pacientes", pacientes);
return modelAndView;
}
@Repository
@Transactional
public class GeralDAO {
@PersistenceContext
private EntityManager manager;
public List<Sexo> listaSexo(){
return manager.createQuery("select s from Sexo s", Sexo.class).getResultList();
}
}
porém nao tenho certeza como fazer,ja tentei alguns metodos,porem não funcionaram
No jsp ta assim
<form:select path="sexo" class="form-control" >
<form:option value=""></form:option>
<c:forEach items="${sexos}" var="s">
<option value="${s.id}"><c:out value="${s.descricao}" /></option>
</c:forEach>
</form:select>