Boa tarde, gostaria de aproveitar o Fórum que trata do mesmo problema que estou passando para pedir ajuda.
Bom, eu estou conseguindo popular normalmente, meu problema é para cadastrar o formulario, antes de popular
usando <h:inputText/> estava indo normalmente, agora não sei como pegar esse dado vindo do selectOpenMenu.
O estranho é que quando clico no Botão cadastrar que vai para a classe Controller, ele não da erro, mas tambem não
esta indo para este método cadastrar() simplesmente da um reload na pagina JSP.
Bom segue abaixo um resumo dos códigos.
Pagina JSP
<f:view>
<h:form>
<rich:tabPanel>
<rich:tab label="Requisição de Compra Simples" style="width:650px" id="idRequisicao">
<h:outputLabel value="Data "></h:outputLabel><rich:calendar value="#{requisicaoController.requisicao.data}" rendered="true"></rich:calendar>
<h:outputLabel value="Projeto Finalidade "></h:outputLabel><h:inputText style="width:400px;" id="txtProjetoFinalidade" value="#{requisicaoController.requisicao.projetoFinalidade}" rendered="true"></h:inputText>
<h:outputLabel value="Area "></h:outputLabel><h:inputText style="width:300px" id="txtArea" value="#{requisicaoController.requisicao.area}" rendered="true"></h:inputText><br/>
<h:selectOneMenu required="true" value="#{centroCustoController.centroCusto.descricaoCentroCusto}">
<f:selectItems value="#{centroCustoController.centroCustos}"/>
</h:selectOneMenu>
<h:outputLabel value="Requisitante "></h:outputLabel><h:inputText style="width:300px" id="txtRequisitante" value="#{requisicaoController.requisicao.requisitante}" rendered="true"></h:inputText>
<h:outputLabel value="Responsavel pelo Departamento "></h:outputLabel><h:inputText style="width:325px" id="txtResponsavelDepartamento" value="#{requisicaoController.requisicao.responsavelDepartamento}" rendered="true"></h:inputText><br/>
<h:outputLabel value="Projeto"></h:outputLabel><h:inputText style="width:300px" id="txtProjeto" value="#{requisicaoController.requisicao.projeto}" rendered="true"></h:inputText>
<h:outputLabel value="Rúbrica"></h:outputLabel><h:inputText style="width:300px" id="txtRubrica" value="#{requisicaoController.requisicao.rubrica}" rendered="true"></h:inputText>
<h:outputLabel value="Item do BP"></h:outputLabel><h:inputText style="width:300px" id="txtItemBP" value="#{requisicaoController.requisicao.itemDoBP}" rendered="true"></h:inputText>
<h:inputTextarea style="width:400px; height:250px;" id="txtJustificativa" />
<h:commandButton id="btnCadastrar" value="Cadastrar" action="#{requisicaoController.cadastrar}" rendered="true"></h:commandButton>
</rich:tab>
</rich:tabPanel>
</h:form>
</f:view>
A classe ControllerCentroCusto
package br.com.mam.managed;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import com.sun.org.apache.regexp.internal.recompile;
import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.CentroCusto;
public class CentroCustoController {
private CentroCusto centrocusto = new CentroCusto();
private List<CentroCusto> centrocustos = new ArrayList<CentroCusto>();
public String cadastrar() {
Dao<CentroCusto> daoCentroCusto = new Dao<CentroCusto>(HibernateUtil.openSession(), CentroCusto.class);
daoCentroCusto.salvar(centrocusto);
return "sucesso";
}
public CentroCusto getCentroCusto() {
return centrocusto;
}
public void setCentroCusto(CentroCusto centrocusto) {
this.centrocusto = centrocusto;
}
public List<SelectItem> getCentroCustos() {
Dao<CentroCusto> daoCentroCusto = new Dao<CentroCusto>(HibernateUtil.openSession(), CentroCusto.class);
List<SelectItem> itens = new ArrayList<SelectItem>();
for (CentroCusto cc: daoCentroCusto.listarTudo()){
itens.add(new SelectItem(cc.getId(), cc.getDescricaoCentroCusto()));
}
return itens;
}
}
A classe RequisicaoController
package br.com.mam.managed;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;
import org.apache.catalina.connector.Request;
import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.Perfil;
import br.com.mam.modelo.hibernate.Requisicao;
public class RequisicaoController {
private Requisicao requisicao = new Requisicao();;
private List<Requisicao> requisicoes;
public String cadastrar() {
Dao<Requisicao> daoRequisicao = new Dao<Requisicao>(HibernateUtil.openSession(), Requisicao.class);
daoRequisicao.salvar(requisicao);
return "sucessoRequisicao";
}
public Requisicao getRequisicao() {
return requisicao;
}
public void setRequisicao(Requisicao requisicao) {
this.requisicao = requisicao;
}
public List<Requisicao> getRequisicoes() {
Dao<Requisicao> daoRequisicao = new Dao<Requisicao>(HibernateUtil.openSession(), Requisicao.class);
return daoRequisicao.listarTudo();
}
public void escolheUsuario(ActionEvent event) {
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent("idRequisicao");
Integer id = (Integer)param.getValue();
Dao<Requisicao> daoRequisicao = new Dao<Requisicao>(HibernateUtil.openSession(), Requisicao.class);
this.requisicao = daoRequisicao.get(id);
}
}
Creio que deve faltar algo no selectOneMenu para que eu consiga cadastrar o item selecionado.
Aguardo e Muito Obrigado.