2014-02-07 3 views
0

은 코드를 변경했지만 실제 변경은 없습니다.ajax 호출은 필드를 비 웁니다.

플레이어를 설정할 때 현재 선택한 플레이어로 다른 선택 메뉴를 업데이트하고 싶습니다. 그러나 메뉴는 완전히 비어있게됩니다. 빈은 항상 올바른 값을 리턴합니다.

페이지에서 뒤로 이동하면 올바른 값이 표시됩니다. 처음 탐색 할 때 의도 한대로 작동합니다.

<p:selectOneMenu value="#{player}" 
       converter="playerConverter" id="playerList"> 
      <f:selectItem itemLabel="---" noSelectionOption="true" /> 
      <f:selectItems value="#{servicePlayer.allPlayers}" 
      var="n" 
      itemValue="#{n}" 
      itemLabel="#{n.combinedName}" 
      itemLabelEscaped="true"/> 
       <p:ajax event="change" execute="@this" update="ClubMenu" actionListener="#{serviceHCP.getClubs(player)}"/> 
       <!-- p:ajax event="change" execute="@this" render="ClubMenu" /--> 
      </p:selectOneMenu> 

       <h:outputText value="Klubb"></h:outputText> 
       <p:selectOneMenu id="ClubMenu" value="#{serviceHCP.myClubList}" rendered="#{not empty serviceHCP.myClubList}"> 
        <f:selectItems value="#{serviceHCP.getClubs(player)}" /> 
       </p:selectOneMenu> 
       <h:outputText value="Serietyp"></h:outputText> 

콩 기능을 백업 당신은 또한 playerList 필드 처리해야

public void getClubs(Player player) { 

     if (factory == null) { 
      factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); 
     } 

     EntityManager em = factory.createEntityManager(); 

     //If we have a player just return that players club 
     Query q; 
     if (player == null || player.getClub() == null) 
      q = em.createQuery("select t from Club t"); 
     else { 
      q = em.createQuery("select t from Club t where t.id = :playerID"); 
      q.setParameter("playerID", player.getClub().getId()); 
     } 

     myClubList = q.getResultList(); 
     for (Club aClub : myClubList) { 
      System.out.println("Club list info: " + aClub); 
     } 
     System.out.println("Club Size: " + myClubList.size()); 

     em.close(); 
    } 
+0

그것이 어떤 정보를 가지고 전에 렌더링받을 두 번째 선택처럼 보인다합니다. – user2130951

답변

0

:

<p:ajax process="@this" update="ClubMenu" /> 
+0

그것은하지 않습니다. getclubs()가 호출되지 않는 것 같습니다. – user2130951

관련 문제