Я работаю с JSF 2.2
, и я хотел бы следующие alert
сообщений (изображение) не показываю, когда пользователь выбрал "Seleccione..."
сообщений:Как добавить f: selectItem с сообщением «select ...» to h: selectOneMenu объектов (JSF)?
[serverERROR: класс javax.faces.component.UpdateModelException Не могу конвертировать Seleccione ... класса java.lang.String типа для класса modelo.entidades.Equipo]
Мои Бин:
@ManagedBean
@SessionScoped
public class Bean{
private String message;
private Equipo equipoSelected;
private List<Equipo> equipos;
public Bean() {
}
@PostConstruct
public void init(){
message = "Seleccione...";
equipos = new ArrayList<Equipo>();
equipos.add(new Equipo(/*....*/));
equipos.add(new Equipo(/*....*/));
equipos.add(new Equipo(/*....*/));
equipoSelected = new Equipo();
}
public void updateSelected(){
//...
}
public setMessage(String message){
this.message = message;
}
public String getMessage(){
return message;
}
public void setEquipos(List<Equipo> equipos){
this.equipos = equipos;
}
public List<Equipo> getEquipos(){
return equipos;
}
public void setEquipoSelected(Equipo equipoSelected){
this.equipoSelected = equipoSelected;
}
public Equipo getEquipoSelected(){
return equipoSelected;
}
}
и код xhtml:
<h:form>
<h:selectOneMenu value="#{bean.equipoSelected}">
<f:selectItem itemValue = "#{null}" itemLabel="#{bean.message}"/>
<f:selectItems value="#{bean.equipos}" var="equipo" itemLabel="#{equipo.name}" itemValue="#{equipo}"/>
<f:ajax event="change" listener="#{bean.updateSelected}" render="@form" execute="@form"/>
</h:selectOneMenu>
</h:form>
спасибо!
Что произойдет, если вы удалите строку '<е: SelectItem ItemValue = "# {NULL}" itemLabel = "# {bean.message}"/>'? – thatsIch
Я предполагаю, что основной проблемой является отсутствующий конвертер, но вы правы, значения «null» всегда подвержены ошибкам, поэтому я также предлагаю заменить его чем-то другим. –