Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema com os campos preços

Boa tarde, o codigo funcionou bem, validou os campos. Porem quando da um erro na validação aparece a mensagem na frente dos inputs mas os campos de preço somem. O que pode ser isso? Faltou alguma tag? Ele parece que não faz o forEach quando da erro nos campos de cima.

meu JSP está assim:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Inserir novo produto</title>
</head>
<body>
<%--     <form:form action="/casadocodigo/produto" method="POST" commandName="produto"> --%>
        <form:form action="${s:mvcUrl('PC#gravar').build() }" method="POST" commandName="produto">
        <div>
            <label>Titulo: </label><br><input type="text" name="titulo"/><form:errors path="titulo" />
        </div>
        <div>
            <label>Descrição: </label><br><textarea rows="15" cols="40" name="descricao"></textarea><form:errors path="descricao" />
        </div>
        <div>
            <label>Numero de Paginas: </label><br><input type="text" name="paginas" /><form:errors path="paginas" />
        </div>
        <div>
            <label>Data Lançamento: </label><br><input type="text" name="dataLancamento"/><form:errors path="dataLancamento" />        
        </div>


        <c:forEach items="${lista }" var="tipo" varStatus="status">
            <div>
            <label>${tipo } </label><br>
            <input type="text" name="precos[${status.index }].valor" >
            <input type="hidden" name="precos[${status.index }].tipo" value="${tipo }" > 
            </div>
        </c:forEach>
        <input type="submit" value="Cadastrar produto" />    
    </form:form>
</body>
</html>
2 respostas
solução!

Opa, quando da erro de validação vc está incluindo a variável lista novamente? Caso não esteja, lembra de invocar o método addObject no ModelAndView.

perfeito, muito obrigado!