Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
12
respostas

redirectattributes.addflashattribute

Não estou conseguindo colocar a msg do controller para o jsp utilizando o addflashattribute.

Seguindo a vídeo aula - Redirect com Escopo de Flash versão do spring mvc 4.1.0

#Controller
    @RequestMapping(method=RequestMethod.POST)
    public ModelAndView gravar(Produto produto, RedirectAttributes redirectAttributes){
        System.out.println(produto);
        produtoDao.gravar(produto);
        redirectAttributes.addFlashAttribute("sucesso","Produto cadastrado com sucesso!");
        return new ModelAndView("redirect: produtos");

    }
#JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Livros de Java, Android, iPhone, Ruby, PHP e muito mais - Casa do Código</title>
</head>
<body>
    <h1>Lista de Produtos</h1>
    <p>
        ${sucesso}
    </p>
    <table>
        <tr>
            <td>Título<td>        
            <td>Descrição<td>        
            <td>Páginas<td>        
        </tr>
        <c:forEach items="${produtos}" var="produto">
            <tr> 
                <td>${produto.titulo }<td>        
                <td>${produto.descricao }<td>        
                <td>${produto.paginas }<td>    
            </tr>
        </c:forEach>
    </table>
</body>
</html>
12 respostas

Vou te dizer que não vi nada de errado.. a página aparece sem a mensagem, é isso?

Sim! Estou quebrando a cabeça.

esse código está no github? posso dar uma olhada

ainda não coloquei no github, aqui no trabalho o acesso ao git é bloqueado. Vou compactar é subir para o google driver

Importei seu projeto, subi no tomcat e rodei. Tudo funcionou como deveria...

Pode ser alguma coisa de configuração, você pode me passar as sua configurações para eu comparar com as minhas? java version "1.8.0_101" apache-tomcat-8.5.5 spring-webmvc-4.1.0

Fiz a importação em outra máquina e também não funcionou.

importei o seu projeto, então as versões do spring são iguais. Usei um tomcat 7 e depois o 8. Minha versão do java é a 1.8.0_40.

Não achei solução, já instalei o apache 7, 8 e 8.5 e nada. No modo debug o objeto redirectAttributes receber o valor correto. Não sei pq a msg não vai o jsp.

Reginaldo, esse é um caso problemático mesmo. Pq o seu código está correto.. Depois que vc cadastra realmente está voltando para a tela da listagem né? Se vc adicionar outras mensagens, aparece?

Cara, já tentei colocar mensagem até na action de listar produtos e também não aparece nada.

solução!

Conseguir solucionar o problema. Alterei as dependências do Spring-webmvc e do tomcat-servlet-api para as versões mais novas e funcionou como o esperado.

Dependência do curso

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.1.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>7.0.30</version>
        <scope>provided</scope>
    </dependency>

Dependência Nova

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>8.0.37</version>
        <scope>provided</scope>
    </dependency>