Fórum Dúvida #390488

14/11/2010

0

Olá pessoal..alguem poderia me ajudar?

Tenho o seguinte codigo na pagina WEB

<p:commandLink id="visualizarRegistro"
                             update="displayPGrid"
                             ajax="true"
                             immediate="true"
                             oncomplete="informationDlg.show()"
                             >
                <p:graphicImage value="../recursos/images/btn/btnVisualizar.png"
                                style="border:0"
                                width="24" height="24"/>
                <f:setPropertyActionListener value="#"
                                             target="#{TipoUnidadeMedidasManagedBean.tipoUnidadeMedidas}" />
</p:commandLink>
------------------------------
O session bean

@ManagedBean(name = "TipoUnidadeMedidasManagedBean")
@SessionScoped
public class TipoUnidadeMedidasManagedBean {

  @EJB
  private TipoUnidadeMedidasSessionBeanLocal facade;
  private TipoUnidadeMedidas tipoUnidadeMedidas;
  private DataModel model;

  public TipoUnidadeMedidas getTipoUnidadeMedidas() {
    return tipoUnidadeMedidas;
  }

  public void setTipoUnidadeMedidas(TipoUnidadeMedidas tipoUnidadeMedidas) {
    this.tipoUnidadeMedidas = tipoUnidadeMedidas;
  }
-----------------------

ERRO:O problema é que ao clicar no botão, a função não esta sendo chamada.

OBS: Informo que estou usando ele com um p:dataTable dentro de uma coluna.

Alguem saberia resolver isto?


Andrei Hirata

Andrei Hirata

Responder

Posts

16/11/2010

Rodrigo Andrade

Vc colocou o imediate como true, com isso o método do bean não é chamado...
Responder

Gostei + 0

16/11/2010

Andrei Hirata

Olá amigo Immediate = true serve para evitar validacoes. se for false a validacao sera obrigatoria. Coloquei como false, e nada aconteceu. De qualquer forma,grato pela resposta
Responder

Gostei + 0

17/11/2010

Rodrigo Andrade

entendi ... mas por que vc não usa o "<a4j: suport ao invés de jogar tudo no link?
Eu faço assim coloco as funcionalidades normais no link e dentro dele jogo o a4j: suporte para resolver as demais coisas...

Responder

Gostei + 0

17/11/2010

Davi Costa

Andrei não vi você no seu código da sua página chamar nehum método não, simplesmente vc só passou uma linha da tabela para um atributo do seu Bean:



<p:commandLink id="visualizarRegistro"
                             update="displayPGrid"
                             ajax="true"
                             immediate="true"
                             oncomplete="informationDlg.show()"
                             >
                <p:graphicImage value="../recursos/images/btn/btnVisualizar.png"
                                style="border:0"
                                width="24" height="24"/>
                <f:setPropertyActionListener value="#"
                                             target="#{TipoUnidadeMedidasManagedBean.tipoUnidadeMedidas}" />
</p:commandLink>


A não ser que esse códgo mais em destaque (vermelho) chame algum método do seu bean? ou estou enganado?
Dá uma olhada nisso. Espero ter ajudado

Att Davi
Responder

Gostei + 0

17/11/2010

Andrei Hirata

Ola Davi.
Vamos entender o código então

Atravez do metodo abaixo
<f:setPropertyActionListener value="#"
                                             target="#{TipoUnidadeMedidasManagedBean.tipoUnidadeMedidas}" />
é alimentado o meu objeto com os dados do banco de dados.

Dessa forma, depois disso, atravez do metodo oncomplete="informationDlg.show()"
é chamado um dialog do prime faces demonstrado as informações daquele objeto alimentado

          <p:dialog header="#{msg.langTituloTipoUnidadeMedidasDetalhes}" widgetVar="informationDlg"                    modal="false" draggable="false" width="450">            <h:panelGrid id="displayPGrid" columns="2">              <h:outputText value="#{msg.langLblId}" />              <h:outputText value="#{TipoUnidadeMedidasManagedBean.tipoUnidadeMedidas.idTipoUnidadeMedidas}" style="font-weight:bold"/>
              <h:outputText value="#{msg.langLblDescricao}" />              <h:outputText value="#{TipoUnidadeMedidasManagedBean.tipoUnidadeMedidas.descricao}" style="font-weight:bold"/>            </h:panelGrid>          </p:dialog>
Responder

Gostei + 0

17/11/2010

Andrei Hirata

RODRIGO , A4J é do RICHFACES. Estou usando PRIMEFACES. O motivo de usar primefaces é o suporte total com JSF2.0, enquanto o RICHFACES é uma CHOradeira GERAL.
Responder

Gostei + 0

18/11/2010

Dyego Carmo

E me conte , não ocorre nenhum erro de javascript na pagina ?

Responder

Gostei + 0

18/11/2010

Andrei Hirata

Vou dar uma olhada se aparece erro de java script e te retorno... O incrivel é que para alguns, funcionam normalmente, mas para outros usuarios não funcionam>VAI ENTENDER.No caso estou usando Mac com eclipse, só FALTA SER ISTO>RSRSRSR.VOu tentar no windows só para ter certeza q n é MAC OS.rsrsrs
Responder

Gostei + 0

18/11/2010

Davi Costa

Andrei, já estava pensando nisso, por aquele outro problema parecido que vc havia passado.
Mas também dá uma olhada no banco se o atributo está 100%, as vezes a gente altera a Entidade(classe Java) e no banco já existia alguns registros e devido essas alterações o hibernate não consegue carregar aquele registro como a entidade mapeada na sua aplicação. Mas acho que não é isso não deve ser problema do Mac mesmo... rsrs

Att Davi
Responder

Gostei + 0

10/12/2010

Dyego Carmo

Conseguiu resolver ?
Responder

Gostei + 0

10/12/2010

Andrei Hirata

Olá.Devido ao tempo estou me dedicando a outros projetos.Mas quando estiver tempo vou tentar e informo para vcs oq aconteceu
Responder

Gostei + 0

27/12/2010

Dyego Carmo

Perfeito !

Responder

Gostei + 0

27/12/2010

Andrei Hirata

Ola pessoal..Apenas gostaria de informar que o problema foi resolvido..Nao posso informar o problema exato, mas falarei o que fooi feito para resolver este problema

A primeira coisa deixei o botao para trabalhar com ajax, depois alterei a minha funcao para " Funcao void (ActionEvent actionEvent) " e depois criei um projeto web normal.

Fazendo isto tudo funcionou tranquilo.No projeto anterior nao funcionou, com estas mudancas o que me faz pensar que Projetos Java EE tem alguma incompatibilidade com os componentes do primefaces.Afinal em projeto web normal funcinou sem nenhum problema...




Responder

Gostei + 0

11/01/2011

Dyego Carmo

Legal !

Eh bom saber que deu tudo certo !

Valeu !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar