Ola pessoal, estou parado na parte de Validacoes do curso de SpringMVC, o problema é que minhas validacoes simplesmente nao aparecem. Segui ao pe da letra o que o instrutor fez no video e mesmo assim, nao aparecem as mensagens do arquivo messages.properties. As mensagens deveriam aparecer ao tentar cadastrar um livro sem algum dos campos preenchidos, mas nenhuma aparece. Meu form:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>Livros de tecnologia e muito mais</title>
</head>
<body>
<form:form action="${s.mvcUrl('PC#gravar').build() }" method="post"
commandName="produto">
<div>
<label>Titulo:</label>
<input type="text" name="titulo"> <br>
<form:errors path="titulo" />
</div>
<div>
<label>Descricao:</label>
<textarea rows="10" cols="20" name="descricao"></textarea>
<form:errors path="descricao" />
<br>
</div>
<div>
<label>Paginas</label> <input type="number" name="paginas">
<form:errors path="paginas" />
<br>
</div>
<c:forEach items="${tipos }" var="tipoPreco" varStatus="status">
<label>${tipoPreco }</label>
<input type="text" name="precos[${status.index }].valor">
<input type="hidden" name="precos[${status.index }].tipo"
value="${tipoPreco }">
</c:forEach>
<button type="submit">Cadastrar</button>
</form:form>
</body>
</html>
messages.properties
field.required = Campo obrigatório
field.required.produto.titulo = Campo titulo obrigatorio
field.required.produto.descricao = Campo descricao obrigatorio
field.required.produto.paginas = Campo paginas obrigatorio
typeMismatch = Tipo do dado invalido
AppWebConfiguration:
package org.casadocodigo.loja.conf;
import org.casadocodigo.loja.controllers.HomeController;
import org.casadocodigo.loja.controllers.ProdutosController;
import org.casadocodigo.loja.daos.ProdutoDAO;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class,
ProdutosController.class,
ProdutoDAO.class})
public class AppWebConfiguration {
@Bean
public InternalResourceViewResolver configuraViews() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
//metodo responsavel por encontrar
//o arquivo message.properties dentro do web-inf
@Bean
public MessageSource messageSource(){
ReloadableResourceBundleMessageSource messageSource
= new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
}