Dúvida

Java

14/11/2010

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

Curtidas 0

Respostas

Rodrigo Andrade

Rodrigo Andrade

14/11/2010

Vc colocou o imediate como true, com isso o método do bean não é chamado...
GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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
GOSTEI 0
Rodrigo Andrade

Rodrigo Andrade

14/11/2010

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...

GOSTEI 0
Davi Costa

Davi Costa

14/11/2010

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
GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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>
GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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

Dyego Carmo

14/11/2010

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

GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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
GOSTEI 0
Davi Costa

Davi Costa

14/11/2010

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
GOSTEI 0
Dyego Carmo

Dyego Carmo

14/11/2010

Conseguiu resolver ?
GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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

Dyego Carmo

14/11/2010

Perfeito !

GOSTEI 0
Andrei Hirata

Andrei Hirata

14/11/2010

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...




GOSTEI 0
Dyego Carmo

Dyego Carmo

14/11/2010

Legal !

Eh bom saber que deu tudo certo !

Valeu !
GOSTEI 0
POSTAR