2
respostas

Minha action alteraConta não está funcionando corretamente.

Prezados, boa noite.

No meu ContaController, fiz uma alteração na action alteraConta para que ela seja redirecionada para a lista novamente. O problema é que depois dessa alteração, aparece o erro Bad Request 400.

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Segue minha jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Altera Conta</title>
</head>
<body>
    <h3>Altera Conta</h3>

    <form action="alteraConta" method="post">
        Descrição: <br/>
        <textarea name="descricao" rows="5" cols="100">${conta.descricao}</textarea>
        <br/>
        Valor: <br/>
        <input type="text" name="valor" value="${conta.valor}" /><br/>
        Tipo: <br/>
        <select name="tipo">
            <option value="ENTRADA" ${conta.tipo=='ENTRADA' ? 'selected':''}>Entrada</option>
            <option value="SAIDA" ${conta.tipo=='SAIDA' ? 'selected':''}>Saída</option>
        </select>
        <br/>
        Pago? <input type="checkbox" name="paga" ${conta.paga?'checked':''} />
        <br/>
        Data de Pagamento: 
        <input type="text" name="dataPagamento" value="<fmt:formatDate value="${conta.dataPagamento.time }" pattern="dd/MM/yyyy" />" />
        <br/>
        <input type="hidden" name="id" value="${conta.id}"/>
        <input type="submit" value="Alterar"/>
    </form>
</body>
</html>

E abaixo as minhas duas actions uma que mostra o form populado com os valores e a outra que "deveria" realizar o redirect.

Action mostra()

@RequestMapping("/mostraConta")
    public String mostra(Long id, Model model) {
        ContaDAO dao = new ContaDAO();
        model.addAttribute("conta",dao.buscaPorId(id));
        return "conta/mostra";

    }

e a action alteraConta

@RequestMapping("/alteraConta")
    public String altera(Conta conta) {
        ContaDAO dao = new ContaDAO();
        dao.altera(conta);
        return "redirect:listaContas";
    }

Podem me ajudar?

2 respostas

Eai Eduardo, tudo bem?

Bom, você pode tentar colocar uma / no redirect: redirect:/listaContas

caso não funcione, tem como mandar esse listaContas? Obrigado!

Boa noite Gabriel, fiz a alteração que me falou, e não funcionou, segue a minha action listaContas

@RequestMapping("/listaContas")
    public ModelAndView lista() {
        ContaDAO dao = new ContaDAO();
        List<Conta> contas = dao.lista();
        ModelAndView mv = new ModelAndView("conta/lista");
        mv.addObject("contas", contas);

        return mv;
    }