Aplicação Ajax em Browser sem Script

2 respostas
hesenger

Pessoal, tenho o seguinte problema:

estou com uma aplicação Struts 2 e Ajax, mas ela deveria funcionar em browsers
sem scripts também. Então vejam o seguinte link:

<s:a href="login.action" targets="div-destino">Link de teste</s:a>

Ele funciona bem quando tenho scripts, pois ele pega a página de login, que é
somente um formulário, e joga numa certa #div. Note que eu disse só o
formulário pq o resto do layout já está desenhado (por ex.: cabeçalho e rodapé).

Agora meu problema é quando não tenho scripts, pois ele me redireciona para o
formulário seco, sem o resto do layout, e por isso gostaria de saber como
posso detectar se é uma requisição ajax ou não, para que eu possar requisitar
por exemplo um template do tiles ou coisa assim.

Se algém tiver alguma idéia ao menos de como fazer isso…

2 Respostas

andreiribas

Minha sugestão é colocar um campo hidden que fale se a requisição é ajax ou não,
ou só na função javascript do ajax você passe esse parâmetro, e então verifique a existência do parâmetro no controller.

algo do tipo:

function ajax() { var parametro = "/RequisicaoAjax?isAjax=true" //resto da função }

e no controller, faça:

Boolean isAjax = (Boolean) request.getParameter("isAjax");
if(isAjax != null /*e/ou == true*/) {
   //tratamento com ajax
}
else {
   //tratamento sem ajax
}
hesenger

Realmente o campo hidden não me tinha vindo a cabeça.

Acho que vai dar certo, pois seto o valor para ele através de script,
e se esse valor não for setado é pq não suporta scripts.

O problema é que são links, acho que cada um teria que ser um submit
para ações diferentes.

Acho que vai dar certo. Depois posto o como ficou. Valeuuuuu!

Criado 23 de fevereiro de 2009
Ultima resposta 23 de fev. de 2009
Respostas 2
Participantes 2