Validar campos ao Alterar um usuario

0 respostas
J

[Estou tendo dificuldades ao tentar alterar(update) um usuário.

Tenho um dataTable. Tenho um botão que ao clicar nele, pego todos os dados do usuário que estão naquela linha.
Se no managedBean eu coloco dao.update(usuario) ele atualiza, porém quando vou passar esse usuário para uma outra classe para validar o que o usuário digitou, ele não altera.
Segue os códigos

pagina.xhtml
<ui:composition template="/paginas/layout/index.xhtml">
	<ui:define name="centro">
	
	<h:messages layout="table" errorStyle="color: red" infoStyle="color: green" warnStyle="color: orange"
		fatalStyle="color: gray" showSummary="false" showDetail="true" />
	
	<h:form prependId="false">
	
	  <p:dataTable id="tabelaUsuario" var="usuario" value="#{usuarioBean.listaUsuario}" style="font-size: 12px;"
	  paginator="true" rows="10" >
	  
	  <f:facet name="header">
	  	<h:outputText value="Alterar Usuários"/>
	  </f:facet>
	  
		<p:column>
			<f:facet name="header">
				<h:outputText value="Nome"/>
			</f:facet>
			<h:outputText value="#{usuario.nome}"/>
		</p:column>
		
		<p:column  style="text-align: center;">
			<f:facet name="header" >
				<h:outputText value="Login"/>
			</f:facet>
			<h:outputText value="#{usuario.login}"/>
		</p:column>


			<p:column style="text-align: center;" >
				<f:facet name="header">
					<h:outputText value="Perfil" />
				</f:facet>
					<h:outputText value="#{usuario.autorizacao.authority}"/>
			</p:column>

		<p:column style="text-align: center;">
			<f:facet name="header" >
				<h:outputText value="Operação"/>
			</f:facet>
			<h:outputText value="#{usuario.operacao.nome}" />
		</p:column>
		
		<p:column>
			<f:facet name="header">
				<h:outputText value="E-mail"/>
			</f:facet>
			<h:outputText value="#{usuario.email}"/> 
		</p:column>
		
		<p:column>
			<f:facet name="header">
				<h:outputText value="Alterar"/>
			</f:facet>
			<p:commandButton actionListener="#{usuarioBean.preparaAlterarUsuario}" value="Alterar" 
			update="infoUsuario" oncomplete="dialogUsuario.show()"/>			
		</p:column>
		
		<p:column>
			<f:facet name="header">
				<h:outputText value="Excluir"/>
			</f:facet>
			<p:commandLink action="#{usuarioBean.excluirUsuario}" value="Excluir" ajax="false"/>
			
		</p:column>
		
	</p:dataTable>
	
	</h:form>
	
	
	<!-- POP-UP ONDE O USUÁRIO DIGITARÁ OS DADOS PARA ALTERAÇÃO -->
	<p:dialog header="Gerencia Usuario" widgetVar="dialogUsuario" resizable="true" modal="false" 
	id="formAlterar" showEffect="bounce" width="500" >
	<p:messages/>
		<h:form prependId="false" id="formAlterarUsuario">
		<p:growl>
		<h:panelGrid id="infoUsuario" columns="2" style="margin-bottom:10px;" >
		
		<f:facet name="header">
			<h:outputText value="Cadastrar Usuário" style="color:blue;"/>
		</f:facet>
		
	    	<h:outputText for="nomeUsuario" value="Nome:"/>
	    	<h:panelGroup>
	    		<p:inputText id="nomeUsuario1" value="#{usuarioBean.usuario.nome}"  />
	    		<h:message for="nomeUsuario" />
	    	</h:panelGroup>
	    	
	    	<h:outputText for="usuarioUsuario" value="Login:" />
	    	<p:inputText value="#{usuarioBean.usuario.login}" id="alterarUsuarioUsuario"/>
	    
	    	<h:outputText for="usuarioSenha" value="Senha:" id="senhaUsuario"/>
	    	<p:password feedback="true" minLength="6" promptLabel="Mínimo de 6 Caracteres!"
	    	  weakLabel="Fraca" goodLabel="Boa" strongLabel="Excelente" value="#{usuarioBean.usuario.senha}" id="usuarioSenha"/>


				<h:outputText value="Perfil:"  />
	    	<h:panelGroup>
	    		<h:selectOneMenu id="perfilUsuario" value="#{usuarioBean.idAut2}">
	    			<f:selectItems id="opPerfil2" value="#{usuarioBean.autorizacao}" />	
	    		</h:selectOneMenu>
	    		<h:message for="perfilUsuario" />
	    	</h:panelGroup>

	    	<h:outputText value="Operação:" />
	    	<h:panelGroup>
	    	<h:selectOneMenu id="operacaoUsuario" value="#{usuarioBean.idOp2}" >
	    		<f:selectItems id="op2" value="#{usuarioBean.operacoes}" />
	    		<h:message for="operacaoUsuario" />
	    	</h:selectOneMenu>
	    	</h:panelGroup>
	    	
	    	<h:outputText for="usuarioEmail" value="E-mail:" />
	    	<p:inputText value="#{usuarioBean.usuario.email}" id="usuarioEmail" />
		
			<p:commandButton update="tabela"  actionListener="#{usuarioBean.alterarUsuario}" value="Alterar"/>
		
		</h:panelGrid>
		
		</p:growl>
		</h:form>
	
	
	</p:dialog>
	
</ui:define>
	
	

</ui:composition>


</html>
bean
public void preparaAlterarUsuario(ActionEvent event)
	{
		usuario = (Usuario)(this.listaUsuario.getRowData());
		this.idAut2 = usuario.getAutorizacao().getId();
		this.idOp2 = usuario.getOperacao().getId();
		
	}
	
	public void alterarUsuario(ActionEvent event){
		UsuarioLogic logic = new UsuarioLogicImpl(DAOFactory.getDAOFactory().getUsuarioDAO());
		UsuarioDAO dao = new UsuarioDaoImpl();
		FacesContext context = FacesContext.getCurrentInstance();
		
		try{
			
		Autorizacao au = new Autorizacao();
		au.setId(this.idAut2);
		this.usuario.setAutorizacao(au);
		
		Operacao op = new Operacao();
		op.setId(this.idOp2);
		this.usuario.setOperacao(op);
		
		dao.alterarUsuario(this.usuario);
		
		
		}catch(HibernateException e)
		{
			e.getMessage();
			
		}
	}
if (usuario.getNome() == null || usuario.getNome().equals("")){
			context.addMessage("frm:formAlterar", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Nome não informado!",
					"Favor informar o nome do usuário!"));
		}
		
		else if (usuario.getNome().length()<10)
		{
			context.addMessage("frm:formAlterarUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Nome Incompleto",
					"Favor informar o nome completo"));
		}
		
	
		
		else if(usuario.getLogin() == null || usuario.getLogin().equals("Digite Um Nome!") ||
				usuario.getLogin().equals(""))
		{
			context.addMessage("frm:formAlterarUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Usuário deve ser Informado",
					"Favor informar o usuário!"));
		}
		
		else if(usuario.getSenha() == null || usuario.getSenha().equals(""))
		{
			context.addMessage("frm:formAlterarUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Senha deve ser Informado",
					"Favor informar uma senha!"));
		}

		else if(comparaSenha==false)
		{
			context.addMessage("frm:repitaSenhaUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Senhas diferentes",
					"As senhas digitadas são diferentes!"));
		}
		
		else if (usuario.getEmail() == null || usuario.getEmail().equals(""))
		{
			context.addMessage("frm:emailUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"O E-mail deve ser informado",
					"Informe o E-mail do usuário!"));
		}
		
		
		//Verifica se o e-mail digitado é um e-mail válido
		//Caso a variavel seja "false", o e-mail é inválido
		else if (this.verificarEmail == false)
		{
			context.addMessage("frm:emailUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"E-mail Inválido",
					"O E-mail digitado não é válido"));
		}
		
		else if(emailExistente==true)
		{
			context.addMessage("frm:formAlterarUsuario", new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"E-mail existente",
					"O E-mail digitado já existe!"));
		}
		
			
		//Passa o Objeto usuário para a Classe UsuarioDaoImpl para que os dados sejam Alterados no Banco;
		else {
			
			
						
				this.dao.alterarUsuario(usuario);
}
}
Criado 8 de outubro de 2011
Respostas 0
Participantes 1