6
respostas

Erro ao exibir view

Estou no exercício Enviando dados para a JSP o meu Controller: @RequestMapping("/listaContas") public ModelAndView lista(){

ContaDAO dao = new ContaDAO(); List contas = dao.lista();

ModelAndView mv = new ModelAndView("conta/lista"); mv.addObject("todasContas",contas);

return mv; }

Tenho uma JSP lista.jsp que esta na pasta conta da pasta views Porem ao digitar na URL http://localhost:8080/contas/listaContas recebo a seguinte mensagem :

HTTP Status 404 - /contas/WEB-INF/views/listaContas.jsp type Status report message /contas/WEB-INF/views/listaContas.jsp description The requested resource is not available. Apache Tomcat/7.0.54

Não estou entendendo porque ele está indo procurar a view listaContas, ou seja, o final da minha url , quando deveria chamar a view lista.jsp da pasta conta !!

6 respostas

Wagner Boa noite,

faça a seguinte alteração no código, na parte em que você define a a lista de contas,

faça,

List<Contas> contas = dao.lista();

Nosso framework nunca irá chamar a view diretamente, no caso lista.jsp pois se fizer isso deixa de realizar as lógicas dentro dos Controller, ele sempre chama o RequestMapping mapeado nesse caso /listaContas que depois redireciona para a lista.jsp a hora que devolvemos o objeto ModelAndView mv

Otima resposta.

Talvez você não esteja referenciando o nome correto. Veja o exemplo abaixo.

ModelAndView mv = new ModelAndView("conta/lista"); mv.addObject("contas", contas);

Ou, você pode retirar toda a tabela para ver o resultado.

Guilherme, agradeço a informação, porém, retificando o código enviado, o meu código já tem o List<Contas> contas = dao.lista(); , acho que na hora que postei foi retirado. Outra coisa, não entendi quando vc explicou que o framework nunca ira chamar diretamente o lista.jsp, o código que postei não chama diretamente, tem o RequestMapping usa o ModelAndView usando como parâmetro o "conta/lista" , o problema, o erro é que ele está direcionando pra listaContas, ou seja, pro RequestMapping e não pro mv !!

Frederico, também agradeço o apoio, o ModelAndView mv = new ModelAndView("conta/lista"); Quanto ao mv.addObject("contas", contas); No exercicio é sugerido que usemos mv.addObject("todasContas", contas); pois no formulario de list.jsp usamos c:forEach items="${todasContas}" Sendo assim não vejo erro neste caso.

Agradeço o apoio da Comunidade !! Consegui resolver o problema, estava importando uma classe errada do Java import org.springframework.web.portlet.ModelAndView; TINHA QUE SER import org.springframework.web.servlet.ModelAndView;

Grato.