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();
}
그것이 어떤 정보를 가지고 전에 렌더링받을 두 번째 선택처럼 보인다합니다. – user2130951