Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

P: ajax não chama função quando uso converter

$
0
0

@oitathi escreveu:

Estou tentando criar componentes apartir de uma lista de Objetos 'AtributosDaPesquisa'.
'AtributosDaPesquisa' contem 'Dominio' que por sua vez contem uma lista de 'ElementosDominio'.
'ElementoDominio' contem entre outros atributos, um boleano.
O componente é uma lista de 'ElementoDominio'. Gostaria de que quando um dos checkbox fosse clicado, o respectivo 'ElementoDominio' fosse passado como parametro pelo ajax para uma função no meu Bean.
Porém, se eu utilizo o converter, o ajax não chama função alguma.
Alguém poderia me ajudar?
Seguem minhas classes:

<h:panelGrid columns="2" cellpadding="20">
    <h:outputText  value="#{adp.dominio.nome}"/>	
    <p:selectManyCheckbox id="gridQueryResult" layout="grid" columns="2" value = "#atributosDaPesquisaBean.resultado}" converter="ElementoDominioConverter"> 
        <p:ajax listener="#{atributosDaPesquisaBean.incluiNaPesquisa}"/>
        <f:selectItems value="#{adp.dominio.elementosDominio}" var="elemento" itemLabel="#{elemento.label}" itemValue="#{elemento}"/>
    </p:selectManyCheckbox>	
</h:panelGrid>

Bean

@ManagedBean
@SessionScoped
public class AtributosDaPesquisaBean {
    private List<AtributosDaPesquisa> atributosDaPesquisaList;
    private String[] resultado;

    @PostConstruct
    public void init() {
          AtributosDaPesquisaDAO adpDao = new AtributosDaPesquisaDAO();
         atributosDaPesquisaList = adpDao.buscaPorRelatorio(relatorio.getCodigo());
         atributosDaPesquisaList.forEach(adp -> adp.setaClausulaDeData());
         for(AtributosDaPesquisa adp: atributosDaPesquisaList){
               if(adp.isEhDominio()){
                      List<ElementoDominio> elementosDominio = adp.getDominio().getElementosDominio();
                      elementosDominio.forEach(elemento -> elemento.setEstaNaPesquisa(false));
               }
        }
     }

  public void incluiNaPesquisa(AjaxBehaviorEvent event){
     //aqui meu método não é chamado
      Map<String, Object> map = event.getComponent().getAttributes();		
 ElementoDominio elemento = (ElementoDominio) map.get("value");
 System.out.println("ok");  
  }

o model AtributosDaPesquisa

 @Entity
 @Table(name = "tbl_atributosdapesquisa")
 public class AtributosDaPesquisa {
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      @Column(name = "atr_codigo")
      private Long codigo;
     @ManyToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "tbl_dominio_dom_codigo", referencedColumnName = "dom_codigo")   
     private Dominio dominio;

     //outras colunas

   //getters and setters
 }

o model dominio

  @Entity
  @Table(name = "tbl_dominio")
  public class Dominio {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name = "dom_codigo")
   private Long codigo;

   @Column(name="dom_nome", nullable = false)
   private String nome;

   @OneToMany(fetch = FetchType.EAGER, mappedBy = "dominio")
   private List<ElementoDominio> elementosDominio;

   //getters and setters
  }

o modelo ElementoDominio:

  @Entity
  @Table(name = "tbl_elemento_dominio")
   public class ElementoDominio {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name = "ele_dom_codigo")
   private Long codigo; 


   @Column(name="ele_dom_label", nullable = false)
   private String label;

   @Column(name="ele_dom_esta_na_pesquisa", nullable = false)
   private boolean estaNaPesquisa;

  @ManyToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "dom_codigo", nullable = false)
  private Dominio dominio;

   //getters and setters
}

e o converter:
@FacesConverter(value = "ElementoDominioConverter", forClass=ElementoDominio.class)
public class ElementoDominioConverter implements Converter {

    @Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
	 if (value != null && StringUtils.isNotBlank(value)&& !value.startsWith("-")) {
		 try {
				ElementoDominio elemento = new ElementoDominioDAO().buscar(Long.parseLong(value));
				return elemento;
		}catch (Exception e) {
        	e.printStackTrace();
        }
    }  
    return null;  
}

@Override
public String getAsString(FacesContext context, UIComponent component,Object object) {
	if (object != null && StringUtils.isNotBlank(object.toString())) {
	  	String codigo = ((ElementoDominio)object).getCodigo().toString(); 
        return  codigo;
    }  
    return null;  
}

}

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles


Girasoles para colorear


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


tagalog love Quotes – Tiwala Quotes


The business quotes | Inspirational and Motivational Quotes for you


Long Distance Relationship Tagalog Love Quotes


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.


5 Tagalog Relationship Rules


HOY PANGIT, MAGBAYAD KA!


Sapos para colorear


Smile Quotes


Patama lines and Tagalog Quotes Pinoy Sayings


Tropa Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


EASY COME, EASY GO


FORECLOSURE OF REAL ESTATE MORTGAGE



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>