Olá, estou em um projeto JSF + Glassfish + Hibernate + Primefaces + CDI.
Estou tentando adicionar um objeto no banco de dados, mas ele só adiciona vazio. Alguém pode me ajudar?
@Named
@ManagedBean
@SessionScoped
public class ClienteController implements Serializable
{
private static final long serialVersionUID = 1L;
@Inject private ClienteDao dao;
private Cliente cliente = new Cliente();
public List<Cliente> getListaClientes() {
return dao.lista();
}
public void prepararAdicionarCliente(ActionEvent actionEvent){
Cliente c = new Cliente();
this.cliente = c;
}
public void adiciona(ActionEvent actionEvent){
dao.salvaOuAtualiza(this.cliente);
}
public Cliente getCliente() {
return this.cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}
<h:form id="formToolBarMain">
<p:toolbar style="font-size:12px;">
<p:toolbarGroup align="left">
<p:commandButton
value="Novo"
actionListener="#{clienteController.prepararAdicionarCliente}"
update=":formNovo:addCliente"
oncomplete="dlg2.show()"
icon="ui-icon-document"
/>
<p:commandButton value="Relatório" icon="ui-icon-print"/>
</p:toolbarGroup>
</p:toolbar>
</h:form>
<p:dialog id="modalDialog" header="Novo Cliente" widgetVar="dlg2" modal="true" height="280">
<f:view encoding="ISO-8859-1">
<h:form id="formNovo" prependId="false">
<h:panelGrid id="addCliente" columns="6" cellpadding="6" cellspacing="2" style="font-size:12px;">
<h:outputLabel value="Razão social" />
<h:inputText id="razaoSocial" value="#{clienteController.cliente.razaoSocial}" required="true" requiredMessage="blabla" maxlength="40" />
<h:outputLabel value="Nome Fantasia" />
<h:inputText id="nomeFantasia" value="#{clienteController.cliente.nomeFantasia}" maxlength="40" />
</h:panelGrid>
<p:toolbar style="font-size:12px;">
<p:toolbarGroup align="left">
<p:commandButton title="Salvar" update=":formTabela:tabela" value="Salvar" actionListener="#{clienteController.adiciona}" icon="ui-icon-disk"/>
<p:commandButton title="Cancelar" value="Cancelar" onclick="dlg2.hide();return false;" icon="ui-icon-cancel"/>
</p:toolbarGroup>
</p:toolbar>
</h:form>
</p:dialog>