2017-01-31 5 views
2

私はマネージドBeanからメソッドを呼び出すxhtmlページを持っていますが、何らかの理由で機能しないようです。すべての対策を試してみました。p:コマンドに変更し、ajax呼び出しを試しました。 hcommandを持つすべてのページが正常に動作し、私はJsf hコマンドボタンが動作しない

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 
<f:metadata> 
    <f:event type="preRenderView" listener="#{hibernateController.getAllWebSites()}"/> 
    <f:event type="preRenderView" listener="#{hibernateController.getAllScores()}"/> 
</f:metadata> 
<h:head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title>Mood Watch</title> 
    <h:outputStylesheet library="css" name="style.css" /> 
</h:head> 

<h:body> 
    <div id="wrapper"> 
    <div id="header"> 
     <h2>Mood Watch</h2> 
    </div> 
    </div> 

    <form> 
     <p:outputLabel>Filter : </p:outputLabel> 
     <p:selectOneMenu id="whySelect1" value="#{hibernateController.siteFromMood}"> 
       <f:selectItems value="#{hibernateController.mySites}" var="tempSites" itemLabel="#{tempSites.site}" itemValue="#{tempSites.moodSite}" /> 
      </p:selectOneMenu> 

      <h:commandButton value="Filter" action="#{hibernateController.filterSites()}"/> 

      <h:commandButton value="View All" action="#{hibernateController.setSitMoodToNull()}"/> 

    </form> 

    <p:dataTable id="moodTable" var="moodValues" value="#{hibernateController.myFrontEndModels}"> 
     <p:column headerText="Date"> 
      <h:outputText value="#{moodValues.dateCreated}" /> 
     </p:column> 

     <p:column headerText="Site"> 
      <h:outputText value="#{moodValues.sitename}" /> 
     </p:column> 

     <p:column headerText="Value"> 
      <h:outputText value="#{moodValues.moodValue}" /> 
     </p:column> 

    </p:dataTable> 



</h:body> 

public void setSitMoodToNull() { 
    siteFromMood = null; 
    System.out.println("This is setSiteFromMood to null :" + siteFromMood); 
} 


public void filterSites(){ 
    System.out.println("Show me specifics"); 

} 
+0

可能重複【のcommandButton /のcommandLink/AJAXアクション/リスナーメソッドが呼び出されていないか、入力値が更新されません(http://stackoverflow.com/questions/2118656/commandbutton-commandlink-ajax-action-listener-メソッド非呼び出しまたは入力値) – Kukeltje

答えて

2

ここに何も悪いことをやってイムことは、これを試してください。

あなたフォームタグはようにする必要がありますこの<h:form>は0123を使用しているためですタグとp:dataTableタグはh:formタグ内にある必要があります。括弧を付けずにメソッド名をELで記述してください。

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 
<f:metadata> 
    <f:event type="preRenderView" listener="#{hibernateController.getAllWebSites()}"/> 
    <f:event type="preRenderView" listener="#{hibernateController.getAllScores()}"/> 
</f:metadata> 
<h:head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title>Mood Watch</title> 
    <h:outputStylesheet library="css" name="style.css" /> 
</h:head> 

<h:body> 
    <div id="wrapper"> 
    <div id="header"> 
     <h2>Mood Watch</h2> 
    </div> 
    </div> 

    <h:form> 
     <p:outputLabel>Filter : </p:outputLabel> 
     <p:selectOneMenu id="whySelect1" value="#{hibernateController.siteFromMood}"> 
       <f:selectItems value="#{hibernateController.mySites}" var="tempSites" itemLabel="#{tempSites.site}" itemValue="#{tempSites.moodSite}" /> 
      </p:selectOneMenu> 
<h:commandButton value="Filter" actionListener="#{hibernateController.filterSites}"/> 

       <h:commandButton value="View All" actionListener="#{hibernateController.setSitMoodToNull}"/> 



    <p:dataTable id="moodTable" var="moodValues" value="#{hibernateController.myFrontEndModels}"> 
     <p:column headerText="Date"> 
      <h:outputText value="#{moodValues.dateCreated}" /> 
     </p:column> 

     <p:column headerText="Site"> 
      <h:outputText value="#{moodValues.sitename}" /> 
     </p:column> 

     <p:column headerText="Value"> 
      <h:outputText value="#{moodValues.moodValue}" /> 
     </p:column> 

    </p:dataTable> 


</h:form> 
</h:body> 
+0

信頼テーブルもデータをレンダリングするフォームとは関係ないので、私はそれを取り出しただけですが、もう一度試してみました。 – user3701188

+0

メソッドを含む完全バッキングBeanコードをアップロードできますか? – ArgaPK

+0

h:formタグがありませんでした。

に置き換えましたか? – ArgaPK

関連する問題