vRaptor - Cadastro com varias etapas, cada etapa em uma pagina

Bem, estou precisando implementar a seguinte tarefa, preciso efetuar um cadastro, por mais simples que seja, esse processo vai envolver mais de uma pagina, então digamos que vai precisar passar pela etapa1, etapa2 e etapa3, e cada etapa é uma pagina diferente, tem como fazer esse tipo de proeza com o vraptor?

lembrando que todas essas etapas tem propriedades(atributos) de um unico objeto, ou seja, na primeira pagina eu inseri os dados de 3 atributos, quando passei para a segunda etapa, ou seja para a proxima pagina tem mais 4 atributos, e assim na ultima pagina, e nela é quem possuirá o botao de salvar, que vai persistir todos os dados dessas etapas.

tem como trabalhar com algo nesse estilo com vraptor?

O nome disso é Wizard.

Eu veria a real necessidade de implementar algo nesse sentido. Mas é possível sim.

Então rafael, o wizard não trabalha utilizando na MESMA pagina nao? pq vou precisar que seja em paginas diferentes.

Não necessariamente.

Por que que você precisa que sejam páginas diferentes?

porque provavelmente a aplicação que vou criar vai ter objeto que precisam de muuuitos campos e a aplicação antiga que é utilizada na empresa trabalha dessa forma ou seja, com as etapas sendo em paginas (o que eu infelizmente não gosto) mais preciso saber se o vraptor me dá essa flexibilidade de fazer algo dessa forma, e queria saber como.

a questão é que se for possível deixar em uma unica pagina com o Wizard, deixarei, mais quero saber se caso seja obrigatório (por parte da empresa), em paginas diferentes, se poderei ter essa possibilidade implementada através do vraptor.

a aplicação antiga que é utilizada na empresa trabalha dessa forma
Minha opinião sobre isso: se vai fazer um sistema novo, deve aproveitar o que ele pode entregar de melhor e arrumar o que o antigo não fazia muito bem. Se você tem o foco de copiar o outro sistema, a migração não é tão necessária assim.

O VRaptor permite que você faça muita coisa. Só que a dificuldade de implementar isso são outros quinhentos.

e eu concordo com você em genero, numero e grau, mais colocar isso na cabeça de “chefes” é diferente. Já passei essa mesma informação pra ele, porem ele quer saber se alguem “mais de cima” quiser essa mesma estrutura de etapas por páginas, se eu posso fazer, e se há uma forma, queria saber o caminho o qual eu devo seguir.

Cara, um controller, um link que vai para outra action e que carrega uma JSP…

Normal… A questão é vc mandar ele retornar o mesmo objeto quando a pessoa voltar para a tela antiga… Isso vai dar um pouco de trabalho…

rafael, posso utilizar dentro de um wizard o jquery validation?

por exemplo, estou usando jquery bootstrap wizard : http://vadimg.com/twitter-bootstrap-wizard-example/examples/basic.html

só que as validações que ele faz, basicamente é na “unha”, ou seja, dessa forma:

$(document).ready(function() { $('#rootwizard').bootstrapWizard({ onTabClick: function(tab, navigation, index) { return false; }, onNext:function(tab, navigation, index) { if(index==1) { // Make sure we entered the name var nome = $('#nome'); if(!nome.val()) { nome.focus(); return false; } } } } ); });

e eu queria aproveitar a estrutura do jquery validations para usar em cada etapa do formulario. queria deixar algo nesse estilo:

$(document).ready(function() {
  	$('#rootwizard').bootstrapWizard({
  				onTabClick: function(tab, navigation, index) {
					return false;
				},
				onNext:function(tab, navigation, index) {
					if(index==1) {
						// Make sure we entered the name
						var nome = $('#nome');
						if(!nome.val()) {
							$('#adicionarUsuario').validate({

	  rules: {
		"usuario.nome": { minlength: 4,required: true},
		"usuario.login": { required: true, minlength: 4},
		"usuario.senha": { minlength: 4,required: true},
	  },
	  
	  highlight: function(element) {
	    $(element).closest('.control-group').removeClass('success').addClass('error');
	  },
	  success: function(element) {
	    $(element).closest('.control-group').removeClass('error').addClass('success');
	  }
	 });
							return false;
						}
					}
				}
  			}
  	);
});

Fique ciente de que esse bootstrap wizard vai fazer o wizard todo na mesma página. Tome cuidado com o validator.

Precisa separar os elementos entre as tabs ou o validator poderá validar elementos que estão em outra tab.

kkkk, mais é exatamente isso que estou perguntando, como utilizar o validate por abas, eu sei que o onNext é para passar de etapa, so que queria deixar a mesma validação só que em vez de formulario, na etapa, e nao estou conseguindo, ou seja, não está efetuando a validação, e queria deixar essa validação pq ele ja está integrado com o bootstrap tambem e ja coloca o input vermelho ou verde de acordo com a validação e inclusive a mensagem já está internacionalizada.

rafael, esse validate pode ser utilizado dentro do componente wizard, ou é definido somente para trabalhar no form quando houver o submit?

Ele é definido somente no form quanto houver o submit.

No caso terei que implementar as validações no “braço” quando for com wizard?

Seria interessante… É menos gambiarrento…