VRaptor e jQuery cache

10 respostas
denilsont

Pessoal,

Pesquisei sobre e não encontrei nada, por isso abri este tópito, se já existe favor me falar.

Estou trabalhando num sistema que tem uma política de ajax sempre configurada como cache=false.
Isto gera um hashcode no final com prefixo _ (undescore) para contornar o cache

$.ajaxSetup({
  cache: false
});

Acontece que no VRaptor as requisições retornam 404 pois não identificam este último parametro.
Eu consegui fazer funcionar de duas formas:

  1. Reconfigurando o cache para true
  2. Adicionando nas actions mais um parâmetro do tipo String _, assim ele chega na action e funciona

A pergunta é: existe uma forma de fazer o VRaptor ignorar este último parâmetro sem acontecer o 404?

Obrigado.

10 Respostas

K

Não se se é a melhor solução, mas isto:
http://vraptor.caelum.com.br/pt/docs/resources-rest-pt/
“Paths com expressões regulares” não resolve?

Lucas_Cavalcanti

se o que ele gera é url?_=[telefone removido] deveria funcionar sem problemas no vraptor…

ele não obriga vc a receber todos os parâmetros no controller.

K

Ops!
Tinha entendido que muda a action da chamada AJAX.
Mas se ele só adiciona mais um parâmetro, como o Lucas comentou, deveria funcionar.

denilsont

ops…
funcionou removendo os parâmetros do path, ou seja, mapeando apenas a url sem nomear os parametros.

vlw galera!

Lucas_Cavalcanti

vc tava mapeando tipo @Get(“url?a={a}”)?

denilsont
@Get("/url/{param}")
public void action(type param) {
...
}

assim estava tando 404
mas se eu adicionasse igual abaixo funcionava

@Get("/url/{param}/{_}")
public void action(type param, String _) {
...
}

o que eu fiz foi remover os argumentos do path ai funcionou

@Get("/url")
public void action(type param) {
...
}

estava fazendo errado?

ps. editei pq adicionei o path sem a barra

Lucas_Cavalcanti

esse param é um query param (que fica depois do ‘?’) ou é um parametro da url mesmo?

qual é a url que o jquery tá chamando? (vc consegue ver num firebug ou developer tools da vida no browser)

denilsont

jQuery: url?param=1_=[telefone removido]

Lucas_Cavalcanti

então só deveria funcionar com @Get("/url")

os query parameters não fazem parte da url que o vraptor trata.

denilsont

ta explicado então…

é que na verdade os parametros estão indo no data do jquery e ele que monta a url como um querystring
mas só pra documentar pra quem ver este tópico…

se for usar params tem que passar a url assim:

/url/param
@Get("/url/{param}")

se for usar querystring

/url?param=value
@Get("/url")

valeu o apoio
problema resolvido

Criado 4 de setembro de 2012
Ultima resposta 4 de set. de 2012
Respostas 10
Participantes 3