Olá,
Estou com uma dúvida com relação as mensagens de erro. Realizei a configuração do messages.properties e importei a taglib form do Spring, porém as mensagens de erro não aparecem na tela. Revi o código, mas não encontrei o erro. Poderiam por favor me ajudar?
Obs: O message properties está dentro de WEB-INF
messages.properties:
field.required = Campo obrigatário
field.required.produto.titulo = O titulo é obrigatário
field.required.produto.paginas = O campo páginas é obrigatorio
field.required.produto.descricao = O campo descrição é obrigatório
typeMismatch = o tipo do dado é inválido
AppWebConf
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
ProdutoController
@RequestMapping("/gravar")
public String gravar(@Valid Produto produto, BindingResult result, RedirectAttributes redirectAttributes){
if(result.hasErrors()){
return "redirect:form";
}
dao.gravar(produto);
redirectAttributes.addFlashAttribute("sucesso", "Produto adicionado com sucesso!");
return "redirect:listandoProdutos";
}
Form
<form:form action="gravar" method="post" commandName="produto">
<div>
<label>Título: </label> <input type="text" name="titulo">
<form:errors path="titulo" />
</div>
<br />
<div>
<label>Descrição: </label><br />
<textarea rows="5" cols="50" name="descricao"></textarea>
<form:errors path="descricao"/>
</div>
<br />
<div>
<label>Número de páginas: </label> <input type="text" name="paginas" />
<form:errors path="paginas" />
</div>
<c:forEach items="${tipos}" var="tipoPreco" varStatus="status">
<label>${tipoPreco}</label>
<input type="text" name="precos[${status.index}].valor">
<br />
<input type="hidden" name="precos[${status.index}].tipo"
value="${tipoPreco}">
</c:forEach>
<input type="submit" value="Cadastrar">
</form:form>