Ae galera! Boa noite! :shock:
Estou com um pequeno probleminha aqui.
Eu tenho uma classe empresa e equipe, sendo que a equipe faz parte da empresa. Na hora do cadastro da equipe, devemos dizer qual empresa ela faz parte.
Para selecionar a empresa, eu fiz um SelectOneMenu, mostra as empresas no SelectItems, fiz converter, tudo bonitinho, só que não persiste a equipe, quando eu clico no botão, ele não executa nenhuma ação, agora só tirar o SelectOneMenu que o form já envia solicitação. Agora se eu tirar o SelectOneMenu do JSF, ele faz a persistência. Segue abaixo, a classe, converter e JSF. Lembrando que estou utilizando Hibernate para persistência e primefaces. Não gera nenhum log.
Classe Empresa
public class Empresa{
@Id @GeneratedValue
private long id;
private String nome;
//get e set omitidos
Classe Equipe
[code]
@Entity
public class Equipe{
@Id @GeneratedValue
private long id;
private Empresa empresa;
private String nome;
private int minArquivo;
private int diasLimites;
private boolean ativo = true;
//get e set omitidos
}[/code]
Converter
[code]@FacesConverter(value=“EmpresaConverter”, forClass=Empresa.class)
public class EmpresaConverter implements Converter {
private EmpresaController emp = new EmpresaController();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return emp.getEmpresasPorId(Integer.valueOf(value));
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return String.valueOf(((Empresa)value).getId());
}
}[/code]
JSF
[code]<p:fieldset legend=“Adicionar Equipe”>
<h:form>
<h:panelGrid columns=“2”>
<h:outputText value=“Nome:” />
<p:inputText value="#{equipeController.equipe.nome}" />
<h:outputText value=“Empresa: " />
<h:selectOneMenu id=“Empresa” value=”#{equipeController.equipe.empresa}">
<f:selectItems value="#{empresaController.empresas}" var=“emp” itemLabel="#{emp.nome}" itemValue="#{emp}" />
<f:converter converterId=“EmpresaConverter” />
</h:selectOneMenu>
<h:outputText value=“Minimo de Arquivos: " />
<p:spinner min=“0” value=”#{equipeController.equipe.minArquivo}"/>
<h:outputText value=“Qtd dias limite: " />
<p:spinner min=“0” value=”#{equipeController.equipe.diasLimites}" />
<p:commandButton actionListener="#{equipeController.salvar}" value="Cadastrar"/>
<p:commandButton type="reset" value="Limpar"/>
</h:panelGrid>
</h:form>
</p:fieldset>[/code]