2015-04-03 3 views
0

Вот мой XHTML код:ч: selectOneMenu вместе с й: selectItems всегда возвращает 0

<h:selectOneMenu id="combo" value="#{TeamsHinzufuegenBean.selectedLeagueId}"> 
    <f:selectItems value="#{TeamsHinzufuegenBean.leagues}" 
        var="league" itemValue="#{league.id}" 
        itemLabel="#{league.name}"/> 
</h:selectOneMenu> 

И мой боб:

@ManagedBean(name = "TeamsHinzufuegenBean") 
@ViewScoped 
public class TeamsHinzufügenBean implements Serializable{ 

    private static final long serialVersionUID = 1L; 
    private List<League> leagues; 
    private ArrayList<Team> teams = new ArrayList<Team>(); 
    private String teamname; 
    private int selectedLeagueId=1; 

    @PostConstruct 
    public void init() { 
     leagues = Database.getInstance().getAllLeagues(); 

     for(League l : leagues) 
      System.out.println(l); 
    } 

    public List<League> getLeagues() { 
     return leagues; 
    } 

    public void setLeagues(List<League> leagues) { 
     this.leagues = leagues; 
    } 

    public int getSelectedLeagueId() { 
     return selectedLeagueId; 
    } 

    public void setSelectedLeagueId(int selectedLeagueId) { 
     this.selectedLeagueId = selectedLeagueId; 
    } 

    public ArrayList<Team> getTeams() { 
     return teams; 
    } 

    public void setTeams(ArrayList<Team> teams) { 
     this.teams = teams; 
    } 

    public String getTeamname() { 
     return teamname; 
    } 

    public void setTeamname(String teamname) { 
     this.teamname = teamname; 
    } 
} 

Лига-класс имеет атрибут id, но если я вывожу значение selectedLeagueId, оно всегда 0.

+0

выглядит как по умолчанию 'selectedLeagueId'. Вы должны устранить проблемы, связанные с жизненным циклом и настройками вашего компонента. Опубликуйте больше своего компонента здесь – kolossus

+0

Вы меняете представление/переходите на другую страницу? –

+1

В соответствии с 'itemValue =" # {league.id} "и' itemLabel = "# {league.name}" ', ясно, что' List 'содержит список составных/сложных объектов. В этом случае вам нужно реализовать собственный конвертер и привязать его к '' ('' или что-то еще). '' будет выглядеть примерно так: Tiny

ответ

0

Проверьте, есть ли в getAllLeagues() объекты, у которых есть идентификатор и что он установлен правильно

Смежные вопросы