JSF (problema rodando app nos IE's)

3 respostas
F

Olá pessoal.
Estou desenvolvendo uma aplicação usando JSF, Richfaces e Facelets e até o momento estava tudo muito bem, enquanto testava a aplicação no Chrome e no Firefox.
Porém fui fazer um teste no ie8 e tive um problema, depois vi que o mesmo erro aconteceu no ie7.
O erro é o seguinte:

eu tenho esse panelMenuItem:

<rich:panelMenuItem label="Novo" id="newForm" actionListener="#{controller.select}" mode="server" action="#{controller.redirect}" > <f:param name="action" id="action" value="newForm"/> </rich:panelMenuItem>
Quando efetuado o evento click, ele acessa o método redirect no Bean “controller” e lá executa algumas pequenas ações.
Dentre essas ações, uma delas é resgatar o valor do value no f:param (eu faço um requestParameterMap do campo action : (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“action”); ), que no caso acima, tem o valor “newForm”
Como dito antes, no Chrome e Firefox funciona normal, mas nos IE’s esse campo retorna nulo.

Eu estou fazendo alguma coisa de errado ou é um problema com o navegador?

valeu!

3 Respostas

alias

Já tive alguns problemas de RichFaces + IE em algumas circunstancias, admito que nao me aprofundei em uma pesquisa no assunto mas pelo que encontrei o provavel é que esses problemas são devido a questoes de incompatibilidade do codigo JavaScript gerado pelo Rich com o IE, já que esse browser infernal tem algumas particularides chatas nesse sentido…

Enfim, sobre o seu problema: Cara o que voce quer fazer é passar um parametro para o seu bean?

Edit: desculpe a pergunta, cretina :lol:, claro que é pra passar um parametro.

Pode postar como está o seu form? (seja h:form ou a4j:form)

D

Eu tambem ja tive esse problema, mas utilizando um h:selectOneMenu com a4j:support.
Depois que foi desabilitado o ajax neste caso, o parâmetro passava corretamente, inclusive no IE.

Acredito que seja alguma falha do rich, ou melhor, do ie… eu vi num topico a agum tempo atras que a proxima versao do rich ia ter uma correção, mas não tenho certeza quanto a isso

F

Valeu pela ajuda, pessoal.
Eu montei esse panelMenuItem de uma forma alternativa agora, tirando o uso do request que eu estava fazendo.
A lógica que eu deixava no método redirect eu coloquei no metodo select, que é executado pelo ActionListener.
A linha de código d menu que era assim: <rich:panelMenuItem label="Novo" id="newForm" actionListener="#{controller.select}" mode="server" action="#{controller.redirect}"> <f:param name="action" id="action" value="newForm"/> </rich:panelMenuItem>

ficou assim

<rich:panelMenuItem label="Novo" id="newForm" actionListener="#{controller.select}" mode="server" action="newForm"/>

no action agora eu passo a string para redirecionamento e não mais o método que retornava a string pra redirecionar.
espero não encontrar mais problemas como esse na minha app. Isso é bem chato mesmo.

Criado 17 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 3
Participantes 3