2016-08-17 3 views
0

これは自分のコードですデータベースから作成したtreenodeを更新するには

これは私のHTMLコードです。

<h:form id="form"> 
       <div id="treeKisim" style="float: left;margin-top: 30px;"> 


    <p:tree id="tree" dynamic="true" value="#{treeEventsView.root}" var="node" selectionMode="single" selection="#{treeEventsView.selectedNode}"> 


    <p:ajax event="select" update=":form:dersGrup " listener="#{treeEventsView.onNodeSelect}" /> 

         <p:treeNode> 
        <h:outputText value="#{node}" style="font-size: 13px;"/> 
         </p:treeNode> 
        </p:tree> 

       </div> 

    <div id="ortaKisim" style="float: left;margin-bottom: 30px;margin-top: -120px; margin-left: 15px;"> 

    <center><p:inputText id="dersGrup" style="margin-top: 150px;width: 150px; margin-bottom: 10px;" value="#{treeEventsView.ders}"/> 
        </center> 

<p:panelGrid columns="2"> 
    <p:outputLabel value="Sınıfı Seçiniz :" style="font-size: 12px;"/> 
    <p:selectOneMenu value="#{treeEventsView.sinif}" style="font-size: 12px;"> 
    <f:selectItems value="#{treeEventsView.siniflar}" /> 
         </p:selectOneMenu> 
    <p:outputLabel value="Günü Seçiniz :" style="font-size: 12px;"/> 
    <p:selectOneMenu value="#{treeEventsView.gun}" style="font-size: 12px;"> 
     <f:selectItems value="#{treeEventsView.gunler}" /> 
    </p:selectOneMenu> 

    <p:outputLabel value="Saati Seçiniz :" style="font-size: 12px;"/> 
    <p:selectOneMenu value="#{treeEventsView.saat}" style="font-size: 12px;"> 
    <f:selectItems value="#{treeEventsView.saatler}" /> 
         </p:selectOneMenu> 

    <p:outputLabel value="Derslik Seçiniz :" style="font-size: 12px;"/> 
    <p:selectOneMenu value="#{treeEventsView.okulSinif}" style="font-size: 12px;"> 
     <f:selectItems value="#{treeEventsView.okulSiniflar}" /> 
         </p:selectOneMenu> 

        </p:panelGrid> 
        <center> 
    <p:commandButton value="delete" actionListener="#{treeEventsView.dersiEkle}" > 

          <p:ajax update=":form:tree" /> 


         </p:commandButton> 

        </center> 
       </div> 
       </h:form> 

このmanagedbean class = treeEventsView;私はボタンをクリックしたときに、私はツリーノードを更新したいが、そのは動作していないので、再びルートを設定

@ManagedBean(name = "treeEventsView") 
@ApplicationScoped 
private TreeNode root; 

private TreeNode selectedNode; 


@PostConstruct 
public void init() { 

root = new DefaultTreeNode("Root", null); 

EntityManagerFactory emf = Persistence.createEntityManagerFactory("DersProgramiWebPU"); 
EntityManager em = emf.createEntityManager(); 
Query sorgu = em.createQuery("SELECT d FROM Gruplar d"); 


    List<Gruplar> dersGrup=sorgu.getResultList(); 

    for (int i = 0; i < dersGrup.size(); i++) { 

    TreeNode ustNode = new DefaultTreeNode(dersGrup.get(i), root); 
    Query altSorgu = em.createQuery("SELECT d FROM TeoriUygulama d where d.dersId=:pDersId "); 
       altSorgu.setParameter("pDersId", dersGrup.get(i).getId()); 

    List<TeoriUygulama> islenisDers=altSorgu.getResultList(); 

    for (TeoriUygulama grup : islenisDers) { 
      TreeNode altNode = new DefaultTreeNode(grup, ustNode); 
        } 
       } 

      em.close(); 
      emf.close(); 


     } 

     String ders; 

     public String getDers() { 
      return ders; 
     } 

     public void setDers(String ders) { 
      this.ders = ders; 
     } 

     public TreeNode getRoot() { 
      return root; 
     } 

     public TreeNode getSelectedNode() { 

      return selectedNode; 
     } 

     public void setSelectedNode(TreeNode selectedNode) { 
      this.selectedNode = selectedNode; 
     } 

あなたは(削除で見ることができるように)、私は私が(呼び出しデータベースと最後の行から削除)、それは更新されません。あなたはどんな提案

+0

と試みるがありますか私はあなたの木の構築が正しくないことをしていると思いますあなたは木の構造の新しいビジョンを開きますか? –

+0

コードを更新します – buguz

答えて

0

あなたのBeanは@ApplicationScopedあるので、あなたの@PostConstructは、アプリケーション全体の寿命のため初回のみのコールで、私の意見では@RequestScoped

関連する問題