Problemas com Struts + AJAX + Firefox

Pessoal estou tendo um problema assim, tenho uma pagina q é montada no TILES assim:

HEADER
BODY
GRID -> AJAX -> JSP
FOOTER

O problema ta nesse GRID, ele é montado a partir de uma JSP via AJAX dinamicamente, quando eu submeto o form ele não passa os valores para a ACTION, isso acontece apenas no firefox, pq no IE funciona normal.

Alguem poderia me ajudar com isso…

Grato,

ABSSSSSSSSSS

Vá em: Ferramentas - Console de erros e vê o erro que está sendo gerado(no FF), e coloca aqui pra gente tentar resolver. Muito provavelmente é um erro de js.

Então o pior q ele não gera erro, a janela de erros vem vazia… assim primeira vez q to mexendo com AJAX… ta meio nebuloso…

as informações q quero a apartir de um checkbox a linha q monta ele ta assim:


<input type="checkbox"  name='ids(<%=id.getId()%>)' /> 

Esse codigo esta na JSP q é chamada pelo AJAX para ser montada dinamicamente; nela eu não posso usar as tags do STRUTS pq não há form nessa pagina e sim onde monta o TILES.

QUAlquer dúvida para melhorar o entendimento estou a disposição

Grato,

Eu nao entendi mto bem msm nao.

Vc tah colocando o nome de algum input usando parenteses?
nao seria o value nao?

Esse seria pra pegar os valores do FORM certo, ali eu enviaria via Scriplets para o form por causa q essa é uma pagina monta via AJAX q esta fora do TILES…

Ainda não entendi pq vc tah sentando o valor recebido no NOME do seu input.
Como você vai pegar o valor do input na Action se o nome é dinamico?
Vc tem que fazer assim:

Aí então quando vc trabalhar com o registros vc trabalhará com array tendo todos os valores.

Então mudei e tentei como vc falo assim:

<input type=“checkbox” name=“ids” value=“ids(<%=id.getId()%>)”

E não foi… tipo assim o “name” seria o campo q enviaria para o FORM certo… o “value” seria a array com os valores pegados dos checkboxes… entendi oq vc disse, e esta correto, mas para isso funcionar precisa de mais alguma coisa sei lá… pq cada check tem seu id mas eles não chegam no form…

cada desde já agradeço sua ajuda… valeu mesmo

Bom agora isso deve esclarecer… no form o atributo para pegar os valores do form ta assim

private Map<String, Object> ids = new HashMap<String, Object> ();

por isso do

… só queria saber pq não funciona no Firefox :S

Tem que dar uma olhada se o seu código tá bem no padrão w3c. O IE aceita uns acochambramentos mas o Firefox é mais padrão. É difícil avaliar o seu problema sem ver uma página que foi gerada com o grid carregado e sem saber que funções ajax vc tá usando (anexa uma página)… Pode ser que o firefox não esteja colocando o grid dentro do seu form na hora de submeter…

abraços,

otávio

Nao sei como ele trata no hashmap
mas acho que dessa forma ai nao vai funcionar mesmo
faz o seguinte, pega uma página gerada aí, olha o código fonte e coloca aqui pra gente ver.

Bom ele monta a tela direitinho… mas ta com problema no submit minha jsp ta assim…


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br"/>


<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>


<table width="100%" cellspacing="2" cellpadding="2">
<logic:iterate name="id" id="ids" type="br.com.dto.ClasseDTO">
	<tr>
		<td width="3%" align="center" bgcolor="white" style="background:#F8F8F8">&nbsp;</td>
		<td width="3%" align="center" style="background:#F8F8F8" valign="center">

       		<logic:notPresent name="gridReadOnly"> 
				<input type="checkbox"  name='ids(<%=id.getId()%>)' />  
       		</logic:notPresent>
     		</td>
        </tr>
</logic:iterate>
</table>

Qual seria o padrão W3C para eu estar dando uma olhada, e essa pagina é chamada via uma Action…

Desculpe ficou faltando a pagina montada…


<tr>
		<td style="background: rgb(248, 248, 248) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" bgcolor="white" width="3%">&nbsp;</td>
		<td style="background: rgb(248, 248, 248) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" valign="center" width="3%">

       		 
				<input name="idsLancamentos(24_91_1026_1096_1509_1109_X_1692)" type="checkbox"> 
       		
		</td>

To meio sem opção por oq procurar… vcs teriam dicas já testei muitas formações na pagina…

Aguardo ajudas

A pagina tah sendo montada corretamente,
eu soh quero saber como vc vai pegar esse valor no seu action se vc nao sabe o nome do seu input.

Vc tem que colocar o valor dentro do atributo value
e no seu action:

String valoresGerados[] = meuObjetoForm.getNomeDoInput();

Entendeu?

Então isso ta feito e mesmo assim não funciona… já coloquei no value e não deu nada…

Pq assim sempre fiz desse jeito q vc falo… mas como estou dando manutenção em uns BUG’s achei estranho pq não funciona no firefox apenas… e quando o código achei estranho tb… mas ele funciona no IE

pior q não sei pq não abre no IE o exibir código fonte… para eu comparar os dois por esta chamada ser em ajax

Conhece essa exception:


java.lang.reflect.InvocationTargetException: Cannot set ids

...

Caused by: java.lang.NoSuchMethodException: Property 'ids' has no setter method

...	

depois q mudo no ie o value ele ESTORA…

Tah falando que vc não tem o get e set para o id. Vc declarou esse id no seu form?
Desta forma que eu disse TEM que funcionar.

Então não esta funcionando pq assim veja se meu raciocinio ta certo… independente de ser via ajax ele deveria buscar direto no form… certo…

Esse padrão w3c vc conhece??? acha q poderia ser isso

Bom achei um detalhe para montar a pagina usa um form dentro do grid já é outro form por isso não estava usando o value e não encontra no form…

Bom isso é valido???

Realmente, independente de ser ajax ele tinha que trazer os valores correto.
O padrão W3C é o padrão pra montar páginas na web.
Acho que não vai ter problema nenhum estar fora do padrão, se desse algum erro, apareceria no console do js.
O endereço dessa aplicação eh publico ou eh local na sua maquina?

É local…

entendi q no input o IE entendi o " name=“id(<%= ids.getId())” como estava como um elemento só ja no FF não… ele não considera nada e manda como null

estou pensando nisso agoraaaa