Erro no validator

o problema está na validação…

no modo fluente, vc tem que falar o que vc quer que seja VERDADE, ou seja, no seu caso vc quer que o usuario e a seja não sejam nulos… então vc tem que fazer:

that(user.getUsername() != null && user.getPassword() != null, "errors", "login.username.password.empty");

lendo isso:
“Eu quero que o username não seja null e que o password não seja null”… daí se isso NÃO for verdade, o vraptor adiciona os erros de validação

entendeu?

o método isEmpty é do java 6

O que há de errado neste método? O validator sempre detecta a condição como verdadeira, mesmo user chegando no Controller com os atributos setados.

@Post
	@Path("/manager/login/authenticate")
	public void authenticate(final User user) {

		validator.checking(new Validations() {
			{
				that(user.getUsername() == null || user.getPassword() == null, "errors", "login.username.password.empty");
			}
		});

		validator.onErrorUse(Results.page()).forward("/manager/login");

		result.redirectTo(HomeManagerController.class).home();
	}

Assim ele simplesmente não valida e também ignora.

		@Post
	@Path("/manager/login/authenticate")
	public void authenticate(final User user) {

		validator.checking(new Validations() {
			{
				that(user.getUsername() == null || user.getPassword() == null, "errors", "login.username.password.empty");
			}
		});

		validator.onErrorUse(Results.logic()).redirectTo(LoginManagerController.class).form();

		result.redirectTo(HomeManagerController.class).home();
	}

E nem assim

	@Post
	@Path("/manager/login/authenticate")
	public void authenticate(final User user) {

		validator.checking(new Validations() {
			{
				that(user.getUsername() == null || user.getPassword() == null, "errors", "login.username.password.empty");
			}
		});

		validator.onErrorUse(Results.logic()).forwardTo(LoginManagerController.class).form();

		result.redirectTo(HomeManagerController.class).home();
	}

Putz! rsrs…

Altas horas da madrugada dá nisso. Foi vacilo meu, perdão. rs

Er, err… Isso também não está detectando os erros.

@Post
	@Path("/manager/login/authenticate")
	public void authenticate(final User user) {

		validator.checking(new Validations() {
			{
				that(user.getUsername() != null, "errors", "login.username.empty");
				that(user.getPassword() != null, "errors", "login.password.empty");
			}
		});
		validator.onErrorUse(Results.logic()).forwardTo(LoginManagerController.class).form();

		result.redirectTo(HomeManagerController.class).home();
	}

OK… por padrão ele não deixa as Strings serem nulas e sim, vazias.

Engraçado que estou usando a JDK 1.5 e não aparece o método isEmpty.

Obrigado