BootsFaces icon indicating copy to clipboard operation
BootsFaces copied to clipboard

dataTable: backing bean doesn't recive ajax events

Open wgualla opened this issue 8 years ago • 1 comments

Hi, I'd made this simple page (and it's simple back bean). The back bean methods (onDataSelect()/onSelectChanged()) are never called. Can anyone tell me what I'm doing wrong?

Thank you all.

My xhtml ` <h:body> <h:form id="form-id">

                <b:dataTable 
                  value="#{pruebaDataTable.datos}"
                  var="doc"
                  id="document-table-id"
                  page-length="5"
                  striped="true"
                  save-state="true"
                  searching="false"
                  border="false"
                  row-highlight="true"
                  lang="ES-es"
                  select="true" 
                  ajax="true"
                  onselect="ajax:PruebaDataTable.onDataSelect()"
                  paginated="false"
                  >

                  <b:dataTableColumn  
                      id="document-table-type-id"
                      label="Type"
                    orderable="false"
                    data-type="text"
                    >

                    <h:outputText id="document-table-nom-id" value="#{doc.id}" />
                  </b:dataTableColumn>
                  <b:dataTableColumn 
                        id="document-table-num-id"
                        label="Number"
                        orderable="false"
                                     >
                    <h:outputText id="document-table-numero-id" value="#{doc.codigo}" />
                  </b:dataTableColumn>

                  <b:dataTableColumn 
                        id="document-table-chk-id"
                        label="select"
                        orderable="false"
                                     >
                      <b:selectBooleanCheckbox 
                          id="document-table-select-id" 
                          value="#{doc.selected}" 
                          ajax="true" process="@this" update="@this" 
                          onchange="ajax:PruebaDataTable.onSelectChanged()" 
                          />
                  </b:dataTableColumn>

                </b:dataTable>

    </h:form>

</h:body>

`

My .java backbean.

`

import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; import javax.inject.Named;

/** *

  • @author wgualla */ @Named @SessionScoped public class PruebaDataTable implements Serializable {

    protected static List<Datos> datos=new ArrayList<>();

    /**

    • @return the datos */ public List<Datos> getDatos() { return datos; }

    public void onDataSelect() { System.out.println("PruebaDataTable.onDataSelect, event recived!!!"); }

    public void onSelectChanged(){ System.out.println("PruebaDataTable.onSelectChanged, event recived!!!"); }

    /**

    • @param aDatos the datos to set */ public void setDatos(List<Datos> aDatos) { datos = aDatos; }

    @PostConstruct public void init(){ getDatos().add(new Datos(0,"000","desc 0")); getDatos().add(new Datos(1,"001","desc 1")); getDatos().add(new Datos(2,"002","desc 2")); getDatos().add(new Datos(3,"003","desc 3")); getDatos().add(new Datos(4,"004","desc 4")); }

    public static class Datos {

    protected int id;
    protected String codigo;
    protected String descripcion;
    protected boolean selected;
    
    public Datos(int id, String codigo, String descripcion){
        this.id=id;
        this.codigo=codigo;
        this.descripcion=descripcion;
    }
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }
    
    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
    
    /**
     * @return the codigo
     */
    public String getCodigo() {
        return codigo;
    }
    
    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
    
    /**
     * @return the descripcion
     */
    public String getDescripcion() {
        return descripcion;
    }
    
    /**
     * @param descripcion the descripcion to set
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    
    /**
     * @return the selected
     */
    public boolean isSelected() {
        return selected;
    }
    
    /**
     * @param selected the selected to set
     */
    public void setSelected(boolean selected) {
        this.selected = selected;
    }
    

    }
    } ` my .pom

    4.0.0

    <groupId>xxxx</groupId> <artifactId>xxxxxxxx</artifactId> 1.0 war

    xxxxxxx

    ${project.build.directory}/endorsed UTF-8
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.5.2</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
        <version>2.5.2</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.2</version>
    </dependency>
    
    <dependency>
        <groupId>jod</groupId>
        <artifactId>jodconverter</artifactId>
        <version>2.2.2</version>
    </dependency>
    
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.4</version>
    </dependency>
    
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>juh</artifactId>
        <version>3.0.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>unoil</artifactId>
        <version>3.0.1</version>
    </dependency>
    
    <dependency>
        <groupId>jodconverter</groupId>
        <artifactId>xstream</artifactId>
        <version>1.3.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.6</version>
    </dependency>
    
    <dependency>
        <groupId>jodconverter</groupId>
        <artifactId>jodconverter-cli</artifactId>
        <version>2.2.2</version>
    </dependency>
    
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>EasyHC3Persistence</artifactId>
        <version>${project.version}</version>
    </dependency>
    
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>net.bootsfaces</groupId>
        <artifactId>bootsfaces</artifactId>
        <version>0.9.0</version>
        <scope>compile</scope>
    </dependency>
    
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>5.3</version>
        <scope>compile</scope>
    </dependency>
    
    <dependency>  
      <groupId>org.primefaces.themes</groupId>  
      <artifactId>all-themes</artifactId>  
      <version>1.0.10</version>  
    </dependency> 
    
    <dependency>
       <groupId>de.larmic.butterfaces</groupId>
       <artifactId>components</artifactId>
       <version>2.1.8</version>
    </dependency>
    
    prime-repo PrimeFaces Maven Repository http://repository.primefaces.org default org.apache.maven.plugins maven-compiler-plugin 3.1 1.7 1.7 ${endorsed.dir} org.apache.maven.plugins maven-war-plugin 2.3 false org.apache.maven.plugins maven-dependency-plugin 2.6 validate copy ${endorsed.dir} true javax javaee-endorsed-api 7.0 jar

wgualla avatar Aug 19 '16 08:08 wgualla

There's an error in BootsFaces 0.9 that causes this problem. I'm not entirely sure your problem is fixed because I only tested input fields and command buttons, but chances are everything works with BootsFaces 1.0. Currently, there's only a developer preview. See https://github.com/TheCoder4eu/BootsFaces-OSP/issues/369 on how to get it.

BTW, you're on the wrong repo. Please open new issues in the open source directory: https://github.com/TheCoder4eu/BootsFaces-OSP

stephanrauh avatar Aug 19 '16 10:08 stephanrauh