[RESOLVIDO] JQuery Validation nao funciona com Struts 2 / Mensagens de erro na pagina?

4 respostas
P

Fala feras :smiley:

Aqui estou eu mais uma vez na jornada com o struts 2. Agora tenho um problema e uma duvida.

Duvida: Como q eu envio uma mensagem para ser impressa na JSP? No JSF tenho aqueles FacesMessage. No Struts tem algo parecido?

Problema: Estou usando 2 actions para alguns processos e preenchendo listas em uma das actions para mandar a view e por isso nao pude usar o validator do struts2. Se eu usasse ele, minhas listas nunca eram preenchidas e ficava com erro na pagina, entao optei pelo Jquery Validation. Fiz o seguinte:

<script type="text/javascript" charset="utf-8" src="<s:url value="/resources/js/jquery.js"/>"></script>
<script type="text/javascript" charset="utf-8" src="<s:url value="/resources/js/jquery.validate.js"/>"></script>
<script type="text/javascript" charset="utf-8" src="<s:url value="/resources/js/usuario-validate.js"/>"></script>

		<s:form action="../usuario/inserirUsuario.action" method="post" id="form-usuario">
		<s:div>

		Dados do usuário
		<table>
			<tr>
				<td>
					<label for="name" class="label">Nome:*</label>
				</td>
				<td>
					<s:textfield name="usuarioForm.nome" id="name" size="45" maxlength="45" required="true" theme="simple"></s:textfield>
				</td>

script

$(function() {
    // valida o formulário
    $('#form-usuario').validate({
        // define regras para os campos
        rules: {
            "usuarioForm.nome": {
                required: true,
                minlength: 2
            }
        },
        // define messages para cada campo
        messages: {
            "usuarioForm.nome": "Preencha o seu nome"
        }
    });
});

Mas ele nao entra no meu metodo de validacao do jquery. Alguem pode me ajudar nessas questoes?

4 Respostas

aleck

No botão de submit do seu form, chame sua função do jquery, caso passe pela validação vc faz o submit.

No struts 2, vc precisa apenas setar o valor do campo na action e ter este mesmo campo no jsp.

L

O seu método JQuery é apenas declarado, mas nunca chamado. O ideal é fazer um binding a um evento de submit de um botão. Estou com preguiça de fazer um exemplo agora, mas achei a documentação do JQuery sobre isso aqui.

Ah, que eu saiba, Struts 2 não tem nada parecido com FacesMessage. Mas posso estar enganado, afinal Struts 2 é como a vida de Joseph Climber, é uma caixinha de surpresas.

P

Resolvido. Era isso que os amigos acima falaram.

A

Ow!
Posta teu código com a sulução do bind. Estou com o mesmo problema.
Valeu!!!

Criado 25 de março de 2009
Ultima resposta 6 de mai. de 2009
Respostas 4
Participantes 4