Bean范围。 bean是否在表单中多次实例化?

时间:2013-12-15 11:05:36

标签: java jsf javabeans

我在理解播放器变量的范围时遇到了问题。这将有效。

<h:selectOneMenu id="playerMenu" value="#{player.firstName}" onchange="submit();"
                    valueChangeListener="#{player.eventNameChanged}">
                    <f:selectItems value="#{serviceHCP.allPlayers}" />
                </h:selectOneMenu>
                <h:outputText value="#{player.combinedName}"></h:outputText>

这将正确地将outputText设置为playerCombined名称。在事件方法中设置。

它也适用于此

        <h:commandButton value="Visa lista" action="#{serviceSeries.getSeriesForPlayerInfo(club.name, player.firstName, serieType.serie_type, calendarBean) }">
        </h:commandButton>

但我不明白为什么我不能发送播放器而不是播放器.firstName?如果我发送播放器,它将始终为空。如果我发送player.firstName,它就会被正确实例化。如果我做player.combinedName,我也无法工作。看起来他们是两个完全不同的班级实例。

当代码的这部分完成我想要的时候,这让我更加困惑。然而,这是一个主要组成部分,所以我不知道这是否与它有关?

<p:calendar value="#{calendarBean.date1}" id="popupButtonCal" showOn="button" pattern="yyyy-MM-dd HH:mm:ss" >
                    </p:calendar>


public List<Player> getAllPlayers() {

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

EntityManager em = factory.createEntityManager();
//Order by the matchdate.
//Query q = em.createQuery("select t from DBTest t");
Query q = em.createQuery("select t from Player t");

List<Player> players = q.getResultList();
for (Player aPlayer : players) {
  System.out.println(aPlayer);
}
System.out.println("Size: " + players.size());

em.close();

return players;

}

0 个答案:

没有答案