2016-05-16 16 views
0

dieses ist meine JSF-Seite, in der ich habe versucht, ein sehr gutes, um die Anforderung an die Eigenschaften von Java-Objekt zu erfüllen. Ich habe das ganze Problem auf dieser Webseite überprüft aber mittags scheint das zu helfen. Ich weiß nicht, was Problem mit meinem Code istDatentabelle nicht Daten in JSF aus Datenbank über LinkedList

<h:dataTable value="#{contact.getPeopleList()}" var="data"> 

     <h:column> 
      <f:facet name="header">ID</f:facet> 
      <h:outputText value="#{data.id}"/> 
     </h:column> 
     <h:column> 
      <f:facet name="header">Name</f:facet> 
      <h:outputText value="#{persons.name}"/> 
     </h:column> 
     <h:column> 
      <f:facet name="header">Mobile Number</f:facet> 
      #{persons.mobilenumber} 
     </h:column> 
     <h:column> 
      <f:facet name="header">Phone Number</f:facet> 
      #{persons.telephone} 
     </h:column> 
     <h:column> 
      <f:facet name="header">Address</f:facet> 
      #{persons.address} 
     </h:column> 

    </h:dataTable> 
</h:body> 

Dieses ist mein Kontakt Klasse, in der ich Klasse Person zu injizieren haben die Eigenschaften der Person Klasse erhalten

 @Named 
     @RequestScoped 
     public class Contact { 
      private Person person; 

      @PostConstruct 
      public void init(){ 
       this.person=new Person(); 

      } 

      public Person getPerson() { 
       return person; 
      } 

      public void setPerson(Person person) { 
       this.person = person; 
      } 



      public String onSubmit(){ 
       ContactDAO doaContact=new ContactDAO(); 
       doaContact.insertContact(person); 


       return "contactpage"; 
      } 
      public List<Person> getPeopleList(){ 
       ContactDAO doaContact=new ContactDAO(); 
       List<Person> personList =doaContact.getAll(); 
       return personList; 
      } 
     } 


      package np.com.drose.beans; 

      import java.util.List; 
      import np.com.drose.doa.ContactDAO; 



      public class Person { 
       private int id; 
       private String name; 
       private int mobilenumber; 
       private int telephone; 
       private String address; 


       public Person() { 

       } 

       public Person(int id, String name, int mobilenumber, int telephone, String address) { 
        this.id = id; 
        this.name = name; 
        this.mobilenumber = mobilenumber; 
        this.telephone = telephone; 
        this.address = address; 
       } 


       public Person(String name, int mobilenumber, int telephone, String address) { 
        this.name = name; 
        this.mobilenumber = mobilenumber; 
        this.telephone = telephone; 
        this.address = address; 

       } 

       public int getId() { 
        return id; 
       } 

       public void setId(int id) { 
        this.id = id; 
       } 

       public String getName() { 
        return name; 
       } 

       public void setName(String name) { 
        this.name = name; 
       } 

       public int getMobilenumber() { 
        return mobilenumber; 
       } 

       public void setMobilenumber(int mobilenumber) { 
        this.mobilenumber = mobilenumber; 
       } 

       public int getTelephone() { 
        return telephone; 
       } 

       public void setTelephone(int telephone) { 
        this.telephone = telephone; 
       } 

       public String getAddress() { 
        return address; 
       } 

       public void setAddress(String address) { 
        this.address = address; 
       } 
      } 

hier bekomme ich verwirrt in der Datenzugriffsobjektklasse, wo ich anscheinend nicht finde, was ich falsch gemacht habe und warum mein Code keine Daten von der Datenbank rendert

public List<Person> getAll(){ 
        List<Person> contactList= new LinkedList<>(); 
        String sql="Select * from contact"; 
        try{ 
         conn = DataConnection.getConnetion(); 
         ps=conn.prepareStatement(sql); 
         rs=ps.executeQuery(); 
         while(rs.next()){ 
          Person person=new Person(rs.getInt("id"),rs.getString("name"),rs.getInt("mobilenumber"),rs.getInt("telephone"),rs.getString("address")); 
          contactList.add(person); 
         } 

        }catch(Exception EX){ 
         EX.printStackTrace(); 
        } 
        return contactList; 
       } 
+0

Um die eine oder andere auszuschließen, klicken Sie mit der rechten Maustaste in den Webbrowser und wählen Sie "Seitenquelle anzeigen". Was genau siehst du? Wird der nicht gepackte JSF-Quellcode oder die generierte HTML-Ausgabe angezeigt? Und haben Sie den Java-Code debuggt, um zu sehen, ob er tatsächlich aufgerufen wird oder nicht? – BalusC

+0

/contactpage.xhtml @ 10,66 value = "# {contact.getPeopleList}": Die Klasse 'np.com.drose.beans.Contact' hat nicht die Eigenschaft 'getPeopleList'. –

Antwort

1

zu Datentabelle in JSF zu machen, müssen Sie listas Attribut Bean class.For Beispiel haben: wie

<h:dataTable value="#{contact.personList}" var="data"> 

überprüfen Sie bitte:

  @Named 
     @RequestScoped 
     public class Contact { 
      private Person person; 
      private List<Person>personList; 


      @PostConstruct 
      public void init(){ 
       this.person=new Person(); 

      } 

      public Person getPerson() { 
       return person; 
      } 

      public void setPerson(Person person) { 
       this.person = person; 
      } 

      public List<Person> getPersonList() { 
     return personList; 
    } 



    public void setPersonList(List<Person> personList) { 
     this.personList = personList; 
    } 

      public String onSubmit(){ 
       ContactDAO doaContact=new ContactDAO(); 
       doaContact.insertContact(person); 


       return "contactpage"; 
      } 
      public List<Person> getPeopleList(){ 
       ContactDAO doaContact=new ContactDAO(); 
       personList =doaContact.getAll(); 
       return personList; 
      } 
} 

und in der HTML-Datei Sie so schreiben soll Das.

+0

hat nicht die Eigenschaft 'personList'. immer noch diesen Fehler werfen –

+0

Sie sollten Eigentum PersonList in Ihrer Bean-Klasse haben. Dann bieten Getter/Setter für diese personList.and zuweisen Wert von Database to personList in getPeopleList() -Methode, wie ich zeige dann in jsf Seite, schreiben Sie so < h: dataTable Wert = "# {contact.personList}" var = "Daten">. – sawyinwaimon

+0

Ich habe versucht, die Codefolge wie du sagst immer noch den gleichen Fehler –