VRaptor 3.5.1 + Hibernate Validator 5.0.1: Não traduz as mensagens colocadas nas anotações

4 respostas
almsrj

Pessoal, boa tarde!

Conforme mencionei no assunto do tópico, estou com problemas para que as mensagens anotadas nas validações do meu modelo sejam traduzidas. Meu modelo está da seguinte forma:

Connection.java

@Entity
public class Connection {
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	
	@Column(nullable=false,unique=true)
	@NotEmpty(message="{connection.name.blank}")
	private String name;

        ...
}

O meu controller realiza a validação utilizando o Validator do VRaptor.

ConnectionController.java

...
	public void create(Connection connection) {
		
		// Valida os dados da conexão antes de salva-la.
		this.validator.validate(connection);
		
		//TODO: Implementar a validação de unicidade.
		Driver driver = this.driverDAO.findDriverById(connection.getDriver().getId());
		if (!this.validator.getErrors().isEmpty()) result.include("driver",driver);
		this.validator.onErrorUsePageOf(ConnectionController.class).blank(driver.getName());

		// Salva o registro.
		connection.setDriver(driver);
		this.connectionDAO.save(connection);
		
		// Retorna para a página principal.
		this.result.include("notice", "connection.notice.create");
		this.result.redirectTo(ConnectionController.class).listConnections(driver.getName());
		
	}
...

Porem, na página continua aparecendo ???{connection.name.blank}??? nos erros.
Na raiz da pasta src tem um arquivo chamado messages_pt_BR.properties e a entrada connection.name.blank está correta, tanto que quando eu utilizo com a jstl, ela traduz corretamente.

O que estou fazendo de errado pessoal?

4 Respostas

Lucas_Cavalcanti

no caso de erros de validação do hibernate validator, o nome do arquivo precisa ser ValidationMessages.properties ou ValidationMessages_pt_BR.properties.

almsrj

Lucas, muito obrigado!

Visto isso, seria possível definir que as mensagens de validação do VRaptor também fossem consultadas nesse arquivo?

Nykolas_Lima

Lucas,

Será que não seria legal se caso o arquivo ValidationMessages.properties não esteja presente, o messages.properties padrão seja consultado?

Lucas_Cavalcanti

na época em que isso foi implementado, não era possível mudar o nome do bundle de mensagens… agora é, pq o Spring MVC usa outro nome…

abre uma issue lá, por favor, ou manda um pull request =)

Criado 31 de julho de 2013
Ultima resposta 5 de ago. de 2013
Respostas 4
Participantes 3