Pessoal tudo blz ?
Estou com um problema que faz um bom tempo, depois de pesquisa e várias tentativas diferentes não conseguir resolver. Talvez exista algum caminho melhor ou mais prático. Mas ai vai.
Tenho uma página com um formulário e o seguinte código:
jQuery(document).ready( function() {
$('#userRegisterForm').submit(function(){
$(this).ajaxForm();
$(this).ajaxSubmit({
success: function(){
alert('Sucesso');
},
error: function(){
alert('Erro');
}
});
return false;
});
É uma página de cadastro de usuário qualquer. A ideia é que deve existir uma validação se o login do usuário já está sendo utilizado.
Para isso criei um método no controlador com o seguinte código.
public void saveUser(Users pUser)
{
if (!mUserService.existsUser(pUser))
{
mUserService.saveUser(pUser);
mResult.nothing();
}
else
{
mResult.notFound();
}
}
De acordo com minhas pesquisas isso apenas deveria funcionar. NotFound para erro e nothing para sucesso.
Mas quando ocorre o caso de erro - NotFound - ele me redireciona para uma página com erro 404 idicando que não há nenhum resource.
Essa é a maneira correta de utilizar Ajax com o VRaptor pra esse tipo de validação ? Existe alguma maneira mais prática ? Como fazer que esse modo que implementei funcione? Já tentei de várias maneiras diferentes, procurei erros bobos e nada.
Agradeço desde já a paciência !
Estou dando alguns primeiros passos com VRaptor num projeto de faculdade.
Qualquer indicação de leitura - não sendo a documentação oficial - é bem vinda !
Abraços e boa noite
e verifica se a url está correta, com o context path na frente de tudo
V
vhmorales
Opa ! Ok … nos proximos posts vou utilizar a formatação correta. Perdão pelo desleixo.
Bom cara, fiz isso que me disse e ainda sou redirecionado pra página de erro 404. O erro é "The requested resource () is not available."
A URL que ele me envia é a específica pra esse método saveUser() que no caso é “/user/new”.
Não deveria ser a url da página de cadastro - no caso “/user/register”? Nem deveria recarrega-la não é ?
Obrigado !
Abraços
Lucas_Cavalcanti
a action do form tem que ser uma url com /user/register se essa é a lógica que salva o usuário… e essa lógica precisa ter uma chamada a:
result.redirectTo( <<<alguma coisa >>> );
ou precisa existir o jsp correspondente (/WEB-INF/jsp/user/register.jsp)
de preferencia a primeira opção.
V
vhmorales
Ainda não entendi.
Existe um página que chama register.jsp. O meu controlador esta assim.
O action do form está redirecionando para esse método saveUser() que tem a URL “/user/new”.
Isso ta errado ? Qual a forma mais correta pra isso ?
Estou usando o CustomRoutes tbm que esta assim.
se ainda tá dando 404, tenta ver se o action do form está certo:
<form action="<c:url value="/user/new"/>">
...
V
vhmorales
Ok,
Vou começar dessa maneira. Achei mais legível também. Mas porém ainda não entendi. Qual lógica que pode estar inserida dentro do método register() ? E pq ele ta com parâmetro ?
O action seria isso mesmo né ? /user/new ?
Seria só isso ?
Desculpe pela ignorância. Acho que não entendi então. Tinha lido a documentação sobre essa parte.
Abraços !
V
vhmorales
A função saveUser() é chamada. Os métodos de negócio são executados com sucesso.
Só quando é retornado notFound() é direcionado pra pagina de erro 404 com a url “/user/new”.
Alguma ideia ?
Lucas_Cavalcanti
se tá passando no .notFound() ele vai pra página do 404 mesmo… é isso que esse método faz.
Lucas_Cavalcanti
o parametro pUser será populado com dados do formulário…
o ajaxSubmit vc usa qdo vc precisa fazer outra coisa, tipo validação, no form
V
vhmorales
Pulta merda cara. Antes de vc falar que fiz questão de da uma olhada nos plugins tava faltando esse do form. Tentei entrar no método ajaxForm e não achou.
Desculpas ae pela perda de tmepo. Não to trabalhando sozinho nesse projeto alguem deve ter tirado por não ta usando.
Desculpa ae ! .
Mas obrigado pela atenção.
Agora ta tudo certo.
Abraços a todos ae … já vou colocar o tópico com resolvido.