2016-10-06 10 views
-1

私はInputTextに入れた名前のリストを表示します。 しかし、私がメソッドを呼び出すと、エラーが発生します:メソッドが見つかりません 誰か助けてくれますか?メソッドが見つかりませんJSF

MyBeanと

@ManagedBean(name="guestBean")public class Exer02_30 { 

    public String name; 
    public String email; 
    public String message; 
    public String nameSearch; 

    public String getName() { 
     return name; 
    } 

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

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public String getNameSearch() { 
     return nameSearch; 
    } 

    public void setNameSearch(String nameSearch) { 
     this.nameSearch = nameSearch; 
    } 

    public ResultSet getContacts() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { 

     Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); 
     Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/GuestBook", "root", "Ds881536"); 
     try{ 
      PreparedStatement getContacts = conn.prepareStatement("SELECT NAME, EMAIL, MESSAGE FROM CONTACTS"); 
      CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl();  
      rowSet.populate(getContacts.executeQuery());  
      return rowSet; 
     } 
     finally{ 

      conn.close(); 
     } 
    } 

    public String save() throws SQLException, ClassNotFoundException, Exception{ 

     Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); 
     Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/GuestBook", "root", "Ds881536"); 
     try{ 

      PreparedStatement addEntry = conn.prepareStatement("INSERT INTO CONTACTS (NAME, EMAIL, MESSAGE) VALUES(?, ?, ?)"); 
      addEntry.setString(1, getName()); 
      addEntry.setString(2, getEmail()); 
      addEntry.setString(3, getMessage()); 

      addEntry.executeUpdate(); 
      return "exer02_30.xhtml"; 
     } 
     finally{ 

      conn.close(); 
     } 
    } 

    public ResultSet getSearch()throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { 

     Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); 
     Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/GuestBook", "root", "Ds881536"); 
     try{ 
      PreparedStatement getSearch = conn.prepareStatement("SELECT NAME, EMAIL, MESSAGE FROM CONTACTS WHERE NAME = ?"); 
      getSearch.setString(1, getNameSearch()); 
      CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl();  
      rowSet.populate(getSearch.executeQuery());  
      return rowSet; 
     } 
     finally{ 

      conn.close(); 
     } 
    } 

} 

JSFファイル

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://xmlns.jcp.org/jsf/core"> 
    <h:head> 
     <title>Guest Book: Add Entry</title> 
    </h:head> 
    <h:body> 
     <h1>Guest Book: Add Entry</h1> 
     <h:form> 
      <h:panelGrid columns="3"> 
       <h:outputText value="Name:"/> 
       <h:inputText id="nameInputText" value="#{guestBean.name}"/> 
       <br/> 
       <h:outputText value="Email:"/> 
       <h:inputText id="emailInputText" value="#{guestBean.email}"/> 
       <br/> 
       <h:outputText value="Message:"/> 
       <h:inputText id="messageInputText" value="#{guestBean.message}"/> 
       <br/>    
      </h:panelGrid> 
      <br/> 
      <h:commandButton id="ajax" value="Save Contact" action="#{guestBean.save()}"> 
       <f:ajax execute="@form" render="@form"/> 
      </h:commandButton>   
      <h:dataTable value="#{guestBean.contacts}" var="contacts" 
        rowClasses="oddRows.evenRows" headerClass="header" 
        styleClass="table" cellpadding="5" cellspacing="0" 
        > 
      <h:column> 
       <f:facet name="header">Name</f:facet> 
       #{contacts.NAME} 
      </h:column> 
      <h:column> 
       <f:facet name="header">Email</f:facet> 
       #{contacts.EMAIL} 
      </h:column> 
      <h:column> 
       <f:facet name="header">Message</f:facet> 
       #{contacts.MESSAGE} 
      </h:column> 
      </h:dataTable> 
     </h:form> 
     <h:form id="form"> 
      <h:panelGroup id="wrapper"> 
       <h:dataTable value="#{guestBean.search}" var="contacts" 
        rowClasses="oddRows.evenRows" headerClass="header" 
        styleClass="table" cellpadding="5" cellspacing="0" 
        > 
       <h:column> 
        <f:facet name="header">Name</f:facet> 
        #{contacts.NAME} 
       </h:column> 
       <h:column> 
        <f:facet name="header">Email</f:facet> 
        #{contacts.EMAIL} 
       </h:column> 
       <h:column> 
        <f:facet name="header">Message</f:facet> 
        #{contacts.MESSAGE} 
       </h:column> 
       </h:dataTable> 
       <h:commandButton id="ajax2" value="Save Contact" action="#{guestBean.search}"> 
        <f:ajax render=":form:wrapper"/> 
       </h:commandButton> 
       <h:outputText value="Search:"/> 
       <h:inputText id="searchInputText" value="#{guestBean.nameSearch}"/> 
      </h:panelGroup> 
     </h:form> 
    </h:body> 
</html> 
+0

この方法は見つかりませんでしたか? – thatsIch

+1

@paulo 1)xmlnsネームスペースの1つのタイプを使用する[JSFタグライブラリ](https://docs.oracle.com/javaee/7/javaserver-faces-2-2/vdldocs-facelets/toc.htm)を参照2) [適切な豆の範囲を選択](http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope)。 –

答えて

-2

あなたは(括弧なし)これを試したことがありますか?

<h:commandButton id="ajax" value="Save Contact" action="#{guestBean.save}"> 
    <f:ajax execute="@form" render="@form"/> 
</h:commandButton> 
+0

メソッドが引数を取らない場合は、それは問題ではありません – thatsIch

+0

私は@thatsIch -1と同意しました –

+0

ああ、残念ですが、私はそれをactionListener – Nikola

関連する問題