Olá Ronaldo, obrigado pela ajuda!
Então, eu dou um update no form sim, além de também eu deixar a propriedade autoUpdate=“true” no componente… vo postar aqui o xhtml de uma das páginas q tentei fazer isso e o metodo. Vo por o xhtml inteiro, para caso haja algum problema de componente fora do lugar certo
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/sico/novotemplateSico.xhtml">
<ui:define name="titulo">Cadastro Usuário | SICO</ui:define>
<ui:define name="nomepagina">Cadastro Usuário</ui:define>
<ui:define name="icone"><p:graphicImage url="/resources/images/newuser.png" alt="Cadastro" title="Cadastro"
width="95" height="95" style="padding-right: 80px; padding-bottom: 15px;" /></ui:define>
<ui:define name="conteudo">
<div id="conteudo">
<p:ajaxStatus style="width:64px;height:64px;position:fixed;left:50%;top:50%;margin-top:50px;">
<f:facet name="start">
<h:graphicImage value="/resources/images/ajax-loader1.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
<h:form id="form" prependId="false">
<p:panel>
<br />
<div class="titulo">USUÁRIOS</div>
<p:separator />
<br />
<div style="margin: 0 auto; width: 800px">
<h:panelGrid rendered="#{ctrlManterUsuario.panel}" columns="2" cellpadding="5" style="text-align: right">
<h:outputLabel value="Nome Completo: * " />
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.nome}" style="width: 600px" />
</h:panelGroup>
<h:outputLabel value="Endereço: " />
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.endereco}" style="width: 440px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Número: " />
<p:inputText value="#{ctrlManterUsuario.selecionado.numero}" style="width: 70px"/>
</h:panelGroup>
<h:outputLabel value="Complemento: " />
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.complemento}" style="width: 200px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Bairro: " />
<p:inputText value="#{ctrlManterUsuario.selecionado.bairro}" style="width: 150px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="CEP: " />
<p:inputMask value="#{ctrlManterUsuario.selecionado.cep}" mask="99999-999" style="width: 100px"/>
</h:panelGroup>
<h:outputLabel value="Cidade: " />
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.cidade}" style="width: 186px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Estado: " />
<p:inputMask mask="aa" value="#{ctrlManterUsuario.selecionado.uf}" style="width: 100px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="CPF: * " />
<p:inputMask value="#{ctrlManterUsuario.selecionado.cpf}" mask="[telefone removido]" style="width: 150px"/>
</h:panelGroup>
<h:outputLabel value="RG: * " style="text-align: right"/>
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.rg}" style="width: 131px" />
<p:spacer width="20" height="0" />
<h:outputLabel value="Telefone 1: * " />
<p:inputMask value="#{ctrlManterUsuario.selecionado.fone1}" mask="([telefone removido]" style="width: 122px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Telefone 2: " />
<p:inputMask value="#{ctrlManterUsuario.selecionado.fone2}" mask="([telefone removido]" style="width: 122px"/>
</h:panelGroup>
<h:outputLabel value="Nome de Usuário: * " />
<h:panelGroup>
<p:inputText value="#{ctrlManterUsuario.selecionado.username}" style="width: 125px"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Senha: * " />
<p:password id="Senha" value="#{ctrlManterUsuario.selecionado.senha}" feedback="true" style="width: 110px" promptLabel="Digite uma senha" weakLabel="Fraca"
goodLabel="Boa" strongLabel="Forte" match="Confirme_senha" required="true" validatorMessage="Senha e Confirmação de Senha devem ser iguais"/>
<p:spacer width="20" height="0" />
<h:outputLabel value="Confirme a senha: * " />
<p:password id="Confirme_senha" style="width: 110px" required="true"/>
</h:panelGroup>
<h:outputLabel value="Tipo de Usuário: * " />
<p:selectOneRadio value="#{ctrlManterUsuario.selecionado.tipo_usuario}">
<f:selectItem itemLabel="Dentista" itemValue="dentista"/>
<p:spacer width="20" height="0" />
<f:selectItem itemLabel="Funcionário" itemValue="funcionario"/>
</p:selectOneRadio>
<p:spacer />
<p:spacer />
*Campos Obrigatórios
</h:panelGrid>
</div>
<div style="margin: 0 auto; width: 800px; text-align: left">
<p:spacer/>
<p:separator />
<p:commandButton action="#{ctrlManterUsuario.inserirUsuario()}" rendered="#{ctrlManterUsuario.panel}" update="@form" value="Cadastrar" title="Cadastrar Funcionário" style="margin: 0 auto" icon="ui-icon-check" />
<div style="margin: 0 auto; width: 800px; text-align: center;">
<p:commandButton action="#{ctrlManterUsuario.novo_cadastro()}" global="false" rendered="#{ctrlManterUsuario.botao_novo}" update="@form" value="Novo Cadastro" title="Cadastrar novo Funcionário" icon="ui-icon-plusthick" />
</div>
<p:messages id="msg" autoUpdate="true" />
</div>
</p:panel>
</h:form>
</div>
</ui:define>
</ui:composition>
</html>
Método:
public void inserirUsuario(){
FacesContext context = FacesContext.getCurrentInstance();
boolean cpf;
try {
if(getSelecionado().getSenha().length() >= 6){
if (!getSelecionado().getRg().matches("[0-9]+")){
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Insira apenas números para o RG!",""));
return;
} else {
cpf = validaCPF(getSelecionado().getCpf());
if(cpf == true){
usuarioDAO.beginTransaction();
String nomeSacento = remover(getSelecionado().getNome());
selecionado.setNomeSemAcento(nomeSacento);
usuarioDAO.save(selecionado);
usuarioDAO.commitAndCloseTransaction();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuário cadastrado com Sucesso!",""));
resetUser();
panel = false;
botao_novo = true;
} else {
System.out.println("cpf invalido");
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "CPF Inválido!",""));
}
}
} else {
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Para sua segurança insira uma senha de pelo menos 6 caracteres!",""));
return;
}
} catch (PersistenceException e){
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "ERRO!",""));
System.out.println(e.getCause());
System.out.println("entro no persistencia");
} catch (Exception e) {
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "ERRO!",""));
System.out.println(e.getCause());
}
}
Obrigado desde já!!!
Abraçoos