Erro ao pegar valor do compo imput

3 respostas
D

pessoal estou com um problema que nao consigo resolver…

estou precisnado atualizar os dados e o managervbean esta sempre pegando o valor que esta na tabela…

segue o meu codigo pra analise:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	template="/template/template_padrao.xhtml">

<h:head>

</h:head>
<ui:define name="conteudo">
	<div id="geral">
			<h:form id="form">		
				<p:confirmDialog message="Deseja realmente excluir este registro?" 
								hideEffect="explode" header="Aviso" severity="alert" 
								widgetVar="confirmation" modal="true">
				    
				    <p:commandButton id="btnSim" value="Sim" 
				    				 oncomplete="confirmation.hide();" 
				    				 immediate="true"
				    				 actionListener="#{usuarioController.removerUsuario}" 
				    				 />
				    <p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button"/>
				</p:confirmDialog>
			
				<p:dialog modal="false" widgetVar="sucess" header="Informação do Sistema"   
				        draggable="false" closable="false" resizable="false">  
				     <h:panelGrid columns="2" style="padding: 25px;margin-left:150px;" cellpadding="5">   
				     	<h:outputText value="Usuário adicionado com sucesso!!" />
				     	<p:commandButton id="infoSucess" value="OK" ajax="false" onclick="sucess.hide()" />
				     </h:panelGrid>   
				</p:dialog>
			<h:panelGrid width="100%">
				<p:fieldset legend="Cadastro de Novos Usuário" id="cadastroUsuario">
				
					<h:panelGrid columns="2">
						<h:outputLabel value="Nome:" id="nome" title="informe seu nome" style="FONT-WEIGHT: bold;"/>
						<h:inputText value="#{usuarioController.usuario.nome}" size="100" required="true" requiredMessage="Informe seu nome"/>
						 

						<br />
					</h:panelGrid>
					
					<h:panelGrid columns="4">

						<h:outputLabel value="Grupo:" style="FONT-WEIGHT: bold;"/> 
			               <p:selectOneMenu id="listgrupo" value="#{usuarioController.grupo.idGrupo}" required="true" requiredMessage="Selecione um grupo">
			               	<f:selectItem itemLabel="Selecione o Grupo" itemValue="#{NULL}" />   
			                   <f:selectItems value="#{usuarioController.grupos}" 
			    				 var="grupo" itemLabel="#{grupo.nome}" itemValue="#{grupo.idGrupo}" /> 
			               </p:selectOneMenu>
			               <h:outputLabel value="Ativo:" style="FONT-WEIGHT: bold;"/> 
			               <p:selectOneMenu id="ativo" value="#{usuarioController.usuario.isativo}" required="true" requiredMessage="Selecione um visibilidade">
			               	<f:selectItem itemLabel="Selecione a visiblidade" itemValue="#{NULL}" />   
			                   <f:selectItem  itemLabel="ativo" itemValue="1" /> 
			                   <f:selectItem  itemLabel="inativo" itemValue="2" /> 
			               </p:selectOneMenu>
			               
			            <h:outputLabel value="Login:" id="login" title="informe seu login" style="FONT-WEIGHT: bold;"/>
						<h:inputText value="#{usuarioController.usuario.login}" size="30" required="true" requiredMessage="Selecione um login"/>
						<h:outputLabel value="Senha:" id="senha" title="informe seu senha" style="FONT-WEIGHT: bold;"/>
						<p:password id="feedback" value="#{usuarioController.usuario.senha}" feedback="true" 
									promptLabel="por favor informe sua senha" 
									goodLabel="Bom" 
									strongLabel="Forte" 
									weakLabel="Fraca"
									size="30"
									required="true" requiredMessage="Informe sua senha"/>
						<h:outputLabel value="repetir-Senha:" id="senha2" title="informe seu repetir-Senha" style="FONT-WEIGHT: bold;"/>
						<p:password id="feedback2" value="#{usuarioController.usuario.senha}" feedback="true" 
									promptLabel="por favor informe sua senha" 
									goodLabel="Bom" 
									strongLabel="Forte" 
									weakLabel="Fraca"
									size="30"
									required="true" requiredMessage="Redigite sua senha para confirmação" /> 
					</h:panelGrid>
					<br />
					<p:commandButton value="Salvar" type="submit" ajax="true"
					actionListener="#{usuarioController.addUsuario}" update=":form:listaUsuario:">
					</p:commandButton>
				</p:fieldset>
			
	
					<p:dataTable id="listaUsuario" var="usuario" value="#{usuarioController.usuarios}"   
				            	emptyMessage="Nenhum Usuário encontrado." paginator="true" 
				            	rows="3"  rowStyleClass="odd, even">    
				  
				        <p:column id="ID" headerText="ID" sortBy="#{usuario.idUsuario}">  
				            <h:outputText value="#{usuario.idUsuario}" />  
				        </p:column>  
				  
				        <p:column id="Nome" filterBy="#{usuario.nome}"  
				                headerText="Filtrar por Nome" sortBy="#{usuario.nome}">  
				            <h:outputText value="#{usuario.nome}"/>  
				        </p:column>  
				  
				        <p:column id="Login" filterBy="#{usuario.login}"   
				                headerText="Filtrar por Login" sortBy="#{usuario.login}">  
				            <h:outputText value="#{usuario.login}" />  
				        </p:column>
				      
				       <p:column id="Ativo" filterBy="#{usuario.isativo}"   
				                headerText="Filtrar por Login" sortBy="#{usuario.isativo}">  
				            <h:outputText value="#{usuario.isativo}" />  
				        </p:column>
				        
				        <p:column id="Grupo" filterBy="#{usuario.grupo.nome}"   
				                headerText="Filtrar por Login" sortBy="#{usuario.grupo.nome}">  
				            <h:outputText value="#{usuario.grupo.nome}" />  
				        </p:column>
				       
				       <p:column>
				       	 <p:commandButton value="Excluir" title="Excluir" 
				       	 				ajax="true"  immediate="true" onclick="confirmation.show()" 
				       	 				style="margin-left: 5px">        
			                 <f:setPropertyActionListener value="#{usuario}" target="#{usuarioController.usuarioSelecionado}" />  
			              </p:commandButton>
			              
			       			<p:spacer width="20"></p:spacer>
			              <p:commandButton  value="EDITAR" title="Editar" ajax="true" 
			              					update=":formdialog:display:"
			              					immediate="true"
			             					onclick="editWidget.show()" 
			             					>
			              	
			              	<f:setPropertyActionListener value="#{usuario}" target="#{usuarioController.usuarioSelecionado}" />
			           	  </p:commandButton> 
				       </p:column>            
				    </p:dataTable>     
				</h:panelGrid>
			</h:form>
			<h:form id="formdialog">
			<p:dialog header="Editando Usuario" widgetVar="editWidget" resizable="false" id="edit"  
                showEffect="fade" hideEffect="explode" modal="true">  
  
		       	<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">  
		   
		            <h:outputText value="Nome:" />  
		            <h:inputText value="#{usuarioController.usuarioSelecionado.nome}" style="font-weight:bold" size="50"/>  
		  
		            <h:outputText value="Login:" />  
		            <h:inputText value="#{usuarioController.usuarioSelecionado.login}" style="font-weight:bold" size="50"/>  
		  
		  
		            <h:outputText value="Grupo:" />  
		            <h:inputText value="#{usuarioController.usuarioSelecionado.grupo.nome}" style="font-weight:bold"/>  
		  
		            <h:outputText value="Ativo" />  
		            <h:inputText value="#{usuarioController.usuarioSelecionado.isativo}" style="font-weight:bold" size="50"/>  
		  
		  			<p:commandButton value="Atualizar" type="submit" ajax="true" 
					 				 oncomplete="edit.hide()"
					 				 immediate="true"
									 actionListener="#{usuarioController.editarUsuario}" >
					</p:commandButton>
		        </h:panelGrid>  
  
    		</p:dialog>  
				
			</h:form>
	</div>
		</ui:define>

</ui:composition>

tenho uma tabela que esxibe os usuariuos cadstrados e dois bt um pra atualizar e outro pra excluir
quando eu aperto no atulizar ele traz os valores que esta na linha clicada, mais se eu editar o valor e manda pro MB ele traz o valor que esta na tabela e nao o valor que eu digitei no campo imput, sera que os colegas poderiam me ajudar.

MB

package ew.com.br.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;

import ew.com.br.business.GrupoBusiness;
import ew.com.br.business.MenuBusiness;
import ew.com.br.business.UsuarioBusiness;
import ew.com.br.model.Grupo;
import ew.com.br.model.Menu;
import ew.com.br.model.Usuario;
import ew.com.br.util.UsuarioLogado;

@ManagedBean(name="usuarioController")
@ViewScoped
public class UsuarioController implements Serializable{

	@ManagedProperty(value="#{usuarioLogado}")
	private UsuarioLogado usuarioLogado;
	
	private static final long serialVersionUID = 1L;
	Usuario usuario = new Usuario();
	Grupo grupo 	= new Grupo();
	
	Usuario usuarioSelecionado = new Usuario();
	Usuario usuarioEditado = new Usuario();
	
	private Menu menu = new Menu();
	private List<Menu> menus = new ArrayList<Menu>();
	
	List<Usuario> usuarios 	= new ArrayList<Usuario>();
	List<Grupo> grupos 		= new ArrayList<Grupo>();
	
	private DataModel<Usuario> Modelusuarios;
	private DataModel<Grupo> Modelgrupos;
	
	UsuarioBusiness usuarioBusiness = UsuarioBusiness.getInstance();
	GrupoBusiness grupoBusiness 	= GrupoBusiness.getInstance();
	MenuBusiness menuBusiness 		= MenuBusiness.getInstance();
	

	@PostConstruct
	public void init(){
		listaGrupo();
		listaUsuario();
	}

	
	public void addUsuario(){
		usuario.setGrupo(grupo);
		try{
			usuarioBusiness.addUsuario(usuario);			
		}catch(Exception e){
			e.getMessage();
		}
	}
		
	public void listaGrupo(){	
		try{
			grupos = grupoBusiness.listaGrupo();
			//Modelgrupos = new ListDataModel<Grupo>(grupos);
		}catch(Exception e){
			e.getMessage();
		}
	}
		
	
	public void editarUsuario(){
		try{
			usuarioBusiness.editarUsuario(usuario);
		}catch(Exception e){
			
		}
	}
	
	public void removerUsuario(){
		try{
			usuarioBusiness.removerUsuario(usuarioSelecionado);
		}catch(Exception e){
			
		}
	}
	
	public void listaUsuario(){
		try{
			usuarios = usuarioBusiness.listaUsuario();
			//Modelusuarios = new ListDataModel<Usuario>(usuarios);
		}catch(Exception e){
			e.getMessage();
		}	
	}

	
	
	
	/* METODOS SET E GET*/

	public Usuario getUsuario() {
		return usuario;
	}
	
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Grupo getGrupo() {
		return grupo;
	}

	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	public DataModel<Usuario> getModelusuarios() {
		return Modelusuarios;
	}

	public void setModelusuarios(DataModel<Usuario> modelusuarios) {
		Modelusuarios = modelusuarios;
	}

	public DataModel<Grupo> getModelgrupos() {
		return Modelgrupos;
	}

	public void setModelgrupos(DataModel<Grupo> modelgrupos) {
		Modelgrupos = modelgrupos;
	}

	public Menu getMenu() {
		return menu;
	}

	public void setMenu(Menu menu) {
		this.menu = menu;
	}

	public List<Menu> getMenus() {
		return menus;
	}

	public void setMenus(List<Menu> menus) {
		this.menus = menus;
	}

	public Usuario getUsuarioSelecionado() {
		return usuarioSelecionado;
	}

	public void setUsuarioSelecionado(Usuario usuarioSelecionado) {
		this.usuarioSelecionado = usuarioSelecionado;
	}

	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

	public List<Grupo> getGrupos() {
		return grupos;
	}

	public void setGrupos(List<Grupo> grupos) {
		this.grupos = grupos;
	}


	public UsuarioLogado getUsuarioLogado() {
		return usuarioLogado;
	}


	public void setUsuarioLogado(UsuarioLogado usuarioLogado) {
		this.usuarioLogado = usuarioLogado;
	}


	public Usuario getUsuarioEditado() {
		return usuarioEditado;
	}


	public void setUsuarioEditado(Usuario usuarioEditado) {
		this.usuarioEditado = usuarioEditado;
	}
	
	
}

obrigado pessoal!!

3 Respostas

A

Remove o immediate=“true”.

D

Muuuito OBRIGADO ayslanms

aproveitando sera que vc poderia me dizer pq esta tabela nao esta atualizando, estou dando update mais ele nao atualiza…

obrigado mais uma vez!!

A

Verifica se você tá recarregando a lista do datatable. Caso isso não funcione, remove o dialog de dentro do form, e coloca um form dentro dele:

<h:form>
 <!-- form atual -->
</h:form>

<p:dialog>
   <h:form>
      <!-- conteudo do dialog-->
   </h:form>
</p:dialog>

Outra coisa coloca um “update” no commandButton com o id do form quer atualizar.

Criado 17 de dezembro de 2012
Ultima resposta 17 de dez. de 2012
Respostas 3
Participantes 2