Вот мой XHTML-код:
<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.
selectedLeagueId
. Вы должны устранить неполадки в жизненном цикле и сеттерах вашего bean-компонента. Опубликуйте больше своего боба здесь - person kolossus   schedule 03.04.2015itemValue="#{league.id}"
иitemLabel="#{league.name}"
видно, чтоList<League>
содержит список составных/сложных объектов. В этом случае вам нужно реализовать собственный преобразователь и прикрепить его к<h:selectOneMenu converter="..."/>
(<f:converter converterId="..."/>
или как-то еще).<f:selectItems>
будет выглядеть примерно так<f:selectItems value="#{TeamsHinzufuegenBean.leagues}" var="league" itemValue="#{league}" itemLabel="#{league.name}"/>
. - person Tiny   schedule 03.04.2015selectOneMenu
привязан кint
, а вашitemValue
также установлен кint
, поэтому вам не нужно реализовывать преобразователь (ссылка). - person DavidS   schedule 04.04.2015