Boa noite pessoal.
Já procurei em diversos foruns, mas não consegui resolver o problema.
Tenho um metodo que lista os aplicativos disponíveis para um usuário no meu bean, como abaixo:
public class LoginBean implements java.io.Serializable {
private md5Conversor md5 = new md5Conversor();
private UsuarioDAO usuDAO = new UsuarioDAO();
private RelUsuarioEmpresaDAO relDAO = new RelUsuarioEmpresaDAO();
private RelAplicativosUsuarioDAO relAppDAO = new RelAplicativosUsuarioDAO();
private RelAplicativosUsuarioBean relBean = new RelAplicativosUsuarioBean();
public Usuario usuario = new Usuario();
public RelUsuarioEmpresa rel = new RelUsuarioEmpresa();
public RelAplicativosUsuario selectedAplicativo;
public String pas;
public String usr;
private String senhaMD5;
FacesMessage msg = null;
boolean loggedIn = false;
private String logged;
// metodo para carregar selectOneMenu
public List<SelectItem> getListAplicativos() {
Logger.getLogger(LoginBean.class.getName()).log(Level.INFO, "usuario: {0}", usuario.getUsername());
List<SelectItem> toReturn = new LinkedList<SelectItem>();
toReturn.add(new SelectItem(null, "-- selecione --"));
try {
for (RelAplicativosUsuario r : relAppDAO.getAtivoByUsuario(usuario)) {
Logger.getLogger(LoginBean.class.getName()).log(Level.INFO, "aplicativo: {0}", r.getAplicativos().getNomeAplicativo());
toReturn.add(new SelectItem(r.getAplicativos().getIdAplicativo(), r.getAplicativos().getNomeAplicativo()));
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex);
}
Logger.getLogger(LoginBean.class.getName()).log(Level.INFO, "toReturn: {0}", toReturn.isEmpty());
Logger.getLogger(LoginBean.class.getName()).log(Level.INFO, "size: {0}", toReturn.size());
return toReturn;
}
....
}
e o componente na pagina index:
<img src="images/jvmsoftware.jpg"/>
<h:form>
<div align="center">
<p:panelGrid style="background-color: activecaption" id="login" columns="1">
<p:outputLabel style="size: auto; font-size: 8px" for="user" value="usuario:"/>
<h:inputText style="size: auto; font-size: 8px" id="user" value="#{loginBean.usuario.username}"/>
<p:outputLabel style="size: auto; font-size: 8px" for="empresa" value="empresa:"/>
<p:inputText style="size: auto; font-size: 8px" id="empresa" value="#{loginBean.rel.empresa.nomeFantasia}"/>
</p:panelGrid>
<br/>
<p:selectOneMenu style="font-size: 10px; width: 180px" value="#{loginBean.selectedAplicativo}">
<f:selectItems var="apl" value="#{loginBean.listAplicativos}" itemValue="#{apl.label}"/>
</p:selectOneMenu>
<br/>
quando chamo a pagina, o componente selectOneMenu traz o valor ‘–selecione–’ e não abre a lista de opções.
fiz um teste com outros dois componentes, e eles exibem a lista de valores retornados pelo metodo getListAplicativos():
seleção de aplicativo:
<h:selectOneMenu style="font-size: 10px; width: 180px" value="#{loginBean.selectedAplicativo}">
<f:selectItems var="apl" value="#{loginBean.listAplicativos}" itemValue="#{apl.label}"/>
</h:selectOneMenu>
<br/>
lista aplicativo
<p:selectOneListbox style="font-size: 10px; width: 180px" value="#{loginBean.selectedAplicativo}">
<f:selectItems var="apl" value="#{loginBean.listAplicativos}" itemValue="#{apl.label}"/>
</p:selectOneListbox>
Alguém tem ideia de como resolver o problema?