[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 951
  • Last Modified:

DefaultTableModel

Is there a possibility of using the DefaultTableModel in conjunction with JSF pages?  I am trying to add database field  to a table in JSF.  I don't want to use drop down lists and that seems to be the only info I can find.  Any help would be greatly appreciated.  I have code to look at if need be.
0
haileysdad
Asked:
haileysdad
  • 8
  • 5
5 Solutions
 
objectsCommented:
yes, DefaultTableModel can be used independently of Swing

0
 
haileysdadAuthor Commented:
Can it be used with JSF?
0
 
objectsCommented:
can be used whereever you want (assuming that where you are using does not expect something specific). Its just a datastructure.

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
haileysdadAuthor Commented:
   I am trying to implement this code but it keeps telling me that it cannont find symbol.

    private void displayResults(List courseList){
        Vector<String> tableHeaders = new Vector<String>();
        Vector tableData = new Vector();
        tableHeaders.add("Course ID");
        tableHeaders.add("Course Name");
        tableHeaders.add("Section");
        tableHeaders.add("Instructor");
 
        for(Object o : courseList){
            Courses course = (Courses) o;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(course.getCourseId());
            oneRow.add(course.getCourseName());
            oneRow.add(course.getSectionId());
            oneRow.add(course.getInstructor());
            tableData.add(oneRow);
        }//end for
    resultsTable.setModel(new DefaultTableModel(tableData, tableHeaders));
    }//end displayResults

Open in new window

0
 
objectsCommented:
what can't it find?  Do you have all the required imports?

0
 
haileysdadAuthor Commented:
symbol: method setModel(javax.swing.table.DefaultTableModel)
location: class com.sun.webui.jsf.component.Table
0
 
haileysdadAuthor Commented:
I don't want it to use that location, but it seems as if there are no other choices as the design view only provides one type of table.
0
 
haileysdadAuthor Commented:
All my imports
import addressBookDB.Courses;
import addressBookDB.HibernateUtil;
import com.sun.data.provider.impl.CachedRowSetDataProvider;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.Label;
import com.sun.webui.jsf.component.Table;
import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.DefaultTableDataProvider;
import java.util.List;
import java.util.Vector;
import javax.faces.FacesException;
import javax.swing.table.DefaultTableModel;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;

Open in new window

0
 
objectsCommented:
can't use it there sorry

0
 
haileysdadAuthor Commented:
so I can't use it where ever I want.  Any ideas on how to get may data to the tables using buttons?
0
 
objectsCommented:
i don't siorry, we don't use jsf. All the examples I have seen just dealing with binding tables to databases

0
 
haileysdadAuthor Commented:
I've seen plenty of tutorials on using drop down lists, but it is hard to implement them for what I want to do.  Oh, well thanks for your time.
0
 
haileysdadAuthor Commented:
the code that should be used to populate a table is very similar to what I have posted here.  I only offer this as a possible solution and not the only solution.  It seems as there are not many JSF experts here so I only offer the solution that works for my particular issue.  The code should be posted under the session beans class.  Data should then be bound to the table using the array.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package registrarjsf;
 
import aBook.Courses;
import aBook.HibernateUtil;
import com.sun.rave.web.ui.appbase.AbstractSessionBean;
import java.util.List;
import javax.faces.FacesException;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
 
/**
 * <p>Session scope data bean for your application.  Create properties
 *  here to represent cached data that should be made available across
 *  multiple HTTP requests for an individual user.</p>
 *
 * <p>An instance of this class will be created for you automatically,
 * the first time your application evaluates a value binding expression
 * or method binding expression that references a managed bean using
 * this class.</p>
 *
 * @version SessionBean1.java
 * @version Created on Apr 23, 2009, 1:56:18 AM
 * @author Chad Koelling
 */
public class SessionBean1 extends AbstractSessionBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
 
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    // </editor-fold>
 
    /**
     * <p>Construct a new session data bean instance.</p>
     */
    public SessionBean1() {
    }
    private Courses[] cArray;
 
    /**
     * Get the value of cArray
     *
     * @return the value of cArray
     */
    public Courses[] getCArray() {
        return cArray;
    }
 
    /**
     * Set the value of cArray
     *
     * @param cArray new value of cArray
     */
    public void setCArray(Courses[] cArray) {
        this.cArray = cArray;
    }
 
    /**
     * <p>This method is called when this bean is initially added to
     * session scope.  Typically, this occurs as a result of evaluating
     * a value binding or method binding expression, which utilizes the
     * managed bean facility to instantiate this bean and store it into
     * session scope.</p>
     * 
     * <p>You may customize this method to initialize and cache data values
     * or resources that are required for the lifetime of a particular
     * user session.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        try {
            _init();
        } catch (Exception e) {
            log("SessionBean1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }
        buildCourses();
 
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
 
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("SessionBean1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }
 
    // </editor-fold>
    // Perform application initialization that must complete
    // *after* managed components are initialized
    // TODO - add your own initialization code here
    }
 
    /**
     * <p>This method is called when the session containing it is about to be
     * passivated.  Typically, this occurs in a distributed servlet container
     * when the session is about to be transferred to a different
     * container instance, after which the <code>activate()</code> method
     * will be called to indicate that the transfer is complete.</p>
     * 
     * <p>You may customize this method to release references to session data
     * or resources that can not be serialized with the session itself.</p>
     */
    @Override
    public void passivate() {
    }
 
    /**
     * <p>This method is called when the session containing it was
     * reactivated.</p>
     * 
     * <p>You may customize this method to reacquire references to session
     * data or resources that could not be serialized with the
     * session itself.</p>
     */
    @Override
    public void activate() {
    }
 
    /**
     * <p>This method is called when this bean is removed from
     * session scope.  Typically, this occurs as a result of
     * the session timing out or being terminated by the application.</p>
     * 
     * <p>You may customize this method to clean up resources allocated
     * during the execution of the <code>init()</code> method, or
     * at any later time during the lifetime of the application.</p>
     */
    @Override
    public void destroy() {
    }
 
    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }
 
    public void buildCourses() {
        cArray = null;
        List<Courses> courseList = null;
        try {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            Transaction tx = session.beginTransaction();
            Query q = session.createQuery("from Courses");
            courseList = (List<Courses>) q.list();
 
        } catch (HibernateException he) {
            he.printStackTrace();
        }//end catch
 
        cArray = new Courses[courseList.size()];
        int i = 0;
        for (Courses course : courseList) {
            Courses opt = new Courses(course.getCourseId(), course.getCourseName(),
                    course.getSectionId(), course.getInstructor());
            cArray[i++] = opt;
        }//end for
    }//end buildCourses
 }       

Open in new window

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now