Olá comecei a pouco tempo utilizar primefaces e estou criando um cadastro de usuário. O p:dialog do cadastro é aberto em um p:dialog do login apos o clicar no link “clique aqui”, mas quando executo o metodo para salvar esse usuário, acaba retornando NULL para todos os p:inputtext
Estou usando as tags de @Managed Bean e @SessionScoped para a classe usuario
Index
<p:dialog id="dialog" header="Login" widgetVar="dlg" resizable="false">
<!--Painel do Botão Login-->
<h:form id="formlogin">
<h:panelGrid columns="1" cellpadding="5">
<h:outputLabel for="username" value="Username:" />
<p:inputText value="#{autenticacao.loginAutenticacao}"
id="username" required="true" label="username" immediate="true" />
<h:outputLabel for="password" value="Password:" />
<h:inputSecret value="#{autenticacao.senhaAutenticacao}"
id="password" required="true" label="password" />
<h:outputLabel value="Não Possui Cadastro">
<h:form id="formloginlink">
<p:commandLink value="Clique aqui" onclick="dlg.hide();dlgusuario.show()"></p:commandLink>
</h:form>
</h:outputLabel>
<f:facet name="footer">
<h:form id="formloginbotao">
<p:commandButton id="loginButton" value="Login"
action="#{autenticacao.login()}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
</h:form>
</f:facet>
</h:panelGrid>
</h:form>
</p:dialog>
<!--Painel para o cadastro-->
<p:dialog id="dialogcadastro" header="Cadastro de Usuario" widgetVar="dlgusuario" resizable="false">
<h:panelGrid columns="4" cellpadding="5">
<h:outputLabel for="nome" value="Nome:" />
<p:inputText value="#{usuario.nomeUsuario}"
id="nome" required="true" label="nome" immediate="true"/>
<h:outputLabel for="rg" value="RG:" />
<p:inputText value="#{usuario.rgUsuario}"
id="rg" required="true" label="rg" immediate="true"/>
<h:outputLabel for="cpf" value="CPF:" />
<p:inputText value="#{usuario.cpfUsuario}"
id="cpf" required="true" label="cpf" immediate="true"/>
<h:outputLabel for="instituicao" value="Instituicao:" />
<p:inputText value="#{usuario.fkCodigoInstituicao}"
id="instituicao" required="true" label="instituicao" immediate="true"/>
<h:outputLabel for="login" value="Login:" />
<p:inputText value="#{autenticacao.loginAutenticacao}"
id="login" required="true" label="login" immediate="true"/>
<h:outputLabel for="senha" value="Senha:" />
<h:inputSecret value="#{autenticacao.senhaAutenticacao}"
id="senha" required="true" label="senha" immediate="true"/>
<h:form>
<h:commandButton id="cadastrousuario" value="Cadastrar" action="#{usuario.createUsuario()}">
</h:commandButton>
</h:form>
</h:panelGrid>
</p:dialog>
Metodo para criar usuario
public String createUsuario(){
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("tcc");
EntityManager manager = factory.createEntityManager();
int codigo=1;
Instituicao instituicao=new Instituicao();
instituicao.setCodigoInstituicao(codigo);
manager.getTransaction().begin();
Usuario usuario=new Usuario();
JOptionPane.showMessageDialog(null,rgUsuario);
usuario.setNomeUsuario(nomeUsuario);
usuario.setRgUsuario(rgUsuario);
usuario.setCpfUsuario(cpfUsuario);
usuario.setFkCodigoInstituicao(instituicao);
manager.persist(usuario);
manager.getTransaction().commit();
Roles roles=new Roles();
roles.setCodigoRoles(2);
new Autenticacao().createAutenticacao(usuario,roles);
manager.close();
factory.close();
return null;
}
Agradeço a quem puder ajudar