How to use h:selectBooleanCheckBox within h:dataTable?

April 12, 2008

JSF

  • Topic : Java Server Faces (JSF)
  • Environment : J2EE 5.0, MyFaces 1.1.5

dataTableCheckBox.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<!--
   Source : www.javabeat.net
-->
 
 
 
<html>
    <body>
        <f:view>
            <h:form id="select">
                <h:dataTable binding="#{dataTableCheckBoxBean.dataTable}"
                             value="#{dataTableCheckBoxBean.empDetails}" var="loc">
                    <h:column>
                        <h:selectBooleanCheckbox value="#{loc.selected}"/>
                        <h:outputText value="#{loc.empNo}"/>
                    </h:column>
                    <h:column>
                        <h:outputText value="#{loc.empName}"/>
                    </h:column>
                </h:dataTable>
                <h:commandButton value="Submit" action="#{dataTableCheckBoxBean.submit}"/>
 
            </h:form>
        </f:view>
    </body>
</html>

DataTableCheckBoxBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
/**
 * Source : www.javabeat.net
 * */
package net.javabeat.myfaces.data;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.faces.component.html.HtmlDataTable;
import net.javabeat.myfaces.beans.EmployeeDetails;
 
public class DataTableCheckBoxBean {
    private List<employeeDetails> empDetails;
    private HtmlDataTable dataTable;
    private EmployeeDetails employeeDetails = new EmployeeDetails();
    public DataTableCheckBoxBean(){
        empDetails = new ArrayList<employeeDetails>();
        EmployeeDetails employeeDetails1 = new EmployeeDetails();
        employeeDetails1.setEmpNo(1);
        employeeDetails1.setEmpName("Krishna");
        EmployeeDetails employeeDetails2 = new EmployeeDetails();
        employeeDetails2.setEmpNo(2);
        employeeDetails2.setEmpName("Shunmuga Raja");
        EmployeeDetails employeeDetails3 = new EmployeeDetails();
        employeeDetails3.setEmpNo(3);
        employeeDetails3.setEmpName("MuthuKumar");
        empDetails.add(employeeDetails1);
        empDetails.add(employeeDetails2);
        empDetails.add(employeeDetails3);
    }
    public HtmlDataTable getDataTable() {
        return dataTable;
    }
 
    public void setDataTable(HtmlDataTable dataTable) {
        this.dataTable = dataTable;
    }
 
    public List<employeeDetails> getEmpDetails() {
        return empDetails;
    }
 
    public void setEmpDetails(List<employeeDetails> empDetails) {
        this.empDetails = empDetails;
    }
    public String submit(){
        Iterator iterator = empDetails.iterator();
        while (iterator.hasNext())
        {
            employeeDetails = (EmployeeDetails)iterator.next();
            System.out.print(employeeDetails.isSelected());
            System.out.print(employeeDetails.getEmpNo());
            System.out.println(employeeDetails.getEmpName());
        }
        return "dataTableCheckBox";
    }
}

EmployeeDetails.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
 * Source : www.javabeat.net
 * */
package net.javabeat.myfaces.beans;
public class EmployeeDetails {
    private boolean selected;
    private Integer empNo;
    private String empName;
 
    public boolean isSelected() {
        return selected;
    }
 
    public void setSelected(boolean selected) {
        this.selected = selected;
    }
    private Address empAddress;
 
    public Integer getEmpNo() {
        return empNo;
    }
 
    public void setEmpNo(Integer empNo) {
        this.empNo = empNo;
    }
 
    public String getEmpName() {
        return empName;
    }
 
    public void setEmpName(String empName) {
        this.empName = empName;
    }
 
    public Address getEmpAddress() {
        return empAddress;
    }
 
    public void setEmpAddress(Address empAddress) {
        this.empAddress = empAddress;
    }
}

faces-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
 
    <managed-bean>
        <managed-bean-name>
            dataTableCheckBoxBean
        </managed-bean-name>
        <managed-bean-class>
            net.javabeat.myfaces.data.DataTableCheckBoxBean
        </managed-bean-class>
        <managed-bean-scope>
            request
        </managed-bean-scope>
    </managed-bean>

email

Comments

comments

  • vichu

    Excuse me why have you used the htmldatatable here..i dont see you using that any where