JSF - Delete Data of a DataTable

Advertisements


In this article, we'll showcase adding deleting capability in datatable

Example Application

Let us create a test JSF application to test the above functionality.

StepDescription
1Create a project with a name helloworld under a package com.tutorialspoint.test as explained in the JSF - Display DataTable sub-chapter of JSF - Data Tables chapter.
2Modify home.xhtml as explained below. Keep rest of the files unchanged.
3Compile and run the application to make sure business logic is working as per the requirements.
4Finally, build the application in the form of war file and deploy it in Apache Tomcat Webserver.
5Launch your web application using appropriate URL as explained below in the last step.

home.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
      <title>JSF tutorial</title>		
      <h:outputStylesheet library="css" name="styles.css"  /> 	
   </h:head>
   <h:body> 
   <h2>DataTable Example</h2>
   <h:form>
      <h:dataTable value="#{userData.employees}" var="employee"
         styleClass="employeeTable"
         headerClass="employeeTableHeader"
         rowClasses="employeeTableOddRow,employeeTableEvenRow">
         <h:column>    				
            <f:facet name="header">Name</f:facet>    				
            <h:inputText value="#{employee.name}"
               size="10" rendered="#{employee.canEdit}" />
            <h:outputText value="#{employee.name}"
               rendered="#{not employee.canEdit}" />
         </h:column>
         <h:column>
            <f:facet name="header">Department</f:facet>
            <h:inputText value="#{employee.department}" 
               size="20" rendered="#{employee.canEdit}" />
            <h:outputText value="#{employee.department}" 
               rendered="#{not employee.canEdit}" />
         </h:column>
         <h:column>
            <f:facet name="header">Age</f:facet>
            <h:inputText value="#{employee.age}" size="5"
               rendered="#{employee.canEdit}" />
            <h:outputText value="#{employee.age}" 
               rendered="#{not employee.canEdit}" />
         </h:column>
         <h:column>
            <f:facet name="header">Salary</f:facet>
            <h:inputText value="#{employee.salary}" 
               size="5" rendered="#{employee.canEdit}" />
            <h:outputText value="#{employee.salary}" 
               rendered="#{not employee.canEdit}" />
         </h:column>
         <h:column>
            <f:facet name="header">Delete</f:facet>
               <h:commandButton value="Delete" 
                  action="#{userData.deleteEmployee}"  />                
                  <f:setPropertyActionListener 
                     target="#{userData.employee}" value="#{employee}" />
               </h:commandButton>
         </h:column>
      </h:dataTable>  
   </h:form>
   </h:body>
</html>

Once you are ready with all the changes done, let us compile and run the application as we did in JSF - First Application chapter. If everything is fine with your application, this will produce following result:

JSF Delete Data of datatable

Click delete button of any row.See the result. JSF Delete Data of datatable1



Advertisements
Advertisements