JSF não está atribuindo valores nas variaveis

10 respostas
yorgan

Olá pessoal,
Seguinte, tenho uma classe controller que instancia uma classe pojo para receber os dados de um formulário de uma página JSF. Contudo, quando a ação de cadastro é chamada, é aberta uma página de erro informando que os campos estão nullos. Contudo, quando chamo a ação para atualizar que está em outra pagina JSF, ocorre tudo de maneira correta.
Segue o meu código:
Classe Controller

//Método que é acionado na página com a lista de operadores. Quando o faces-config recebe "novoOperador",
    //Redireciona para a página com o formulário de inserção de operadores.
    public String novoOperador() {
        this.operador = new Operador();
        return "novoOperador";
    }
    //Método que insere o novo operador.
    public String salvarNovoOperador() throws DAOException {
    	InterfaceOperadorDAO operadorDAO = new OperadorDAO();
    	operadorDAO.inserir(getOperador());
        return "operadorInserido";
    }

    public Operador getOperador() {
        return operador;
    }

    public void setOperador(Operador operador) {
        this.operador = operador;
    }

Página JSF

//Codigo do corpo da página....
        <f:view>
            <h:form id="formulario">
                   <h:commandLink action="#{operadorController.salvarNovoOperador}" ><img src="images/mn_salvar.gif" border="0" style='border: 0px;' /></h:commandLink>
//Codigo do corpo da página....
                   <h:inputText size="17" id="nome" value="# operadorController.operador.nm_operador_sistema}" />
//Outros campos...
            </h:form>
        </f:view>

Alguém sabe o que pode ser?

10 Respostas

Giulliano

Eu percebi que vc só instancia um Objeto no método “novoOperador”

Mas não vi vc chamando essa função. Pq vc não faz a instância direto na declaração dos Atributos ???

public class Controller {

   private Operador operador = ew Operado();
   //Getters and Setters
}
yorgan

Eu crio a instância quando chamo a janela de inserir um operador novo.
Eu não deixo instanciado, pois se chamo a janela de editar um operador, pego um objeto do datamodel.

A sequencia que sigo para inserir um novo registro:
Chamada da pagina com a tabela de operadores:

h:commandLink action="#{operadorController.novoOperador}"><img src="images/mn_novo.gif" border="0" style='border: 0px;'/></h:commandLink>

faces-config, que redireciona para a página que postei acima.

<navigation-rule>
        <display-name>operador</display-name>
        <from-view-id>/operador.jsp</from-view-id>
        <navigation-case>
            <from-outcome>novoOperador</from-outcome>
            <to-view-id>/operadorNovo.jsf</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>editarOperador</from-outcome>
            <to-view-id>/operadorDados.jsf</to-view-id>
        </navigation-case>
    </navigation-rule>
Giulliano

Tenta deixar instanciado apenas para fazer um teste. E quanto a pegar um objeto do datamodel…Vc pode apontar a referência do objeto criado para o objeto do datamodel na hora da edição.

yorgan

Tentei, mas ele continua deixado todos os campos nulos quando chamo o método de inserir.
Muito estranho, pois a janela de editar funciona corretamente. Não entendo porque ele pega os dados do formulário de edição mas o formulário novo não pega.

Giulliano

Putz cara vc deve estar errando alguma coisa muito besta e por isso não conseguiu entender…tenta dar um debug na sua app

tiagoemerick

Cara…

eu sei que o post é antigo… mas eu to com isso também!
to ficando louco!!!

mas no meu caso, eu to comuma lista de registro. Clico no link de um e abre a tela de edicao!
os dados ja cadastrados aparecem na jsp! eu altero algum campo e na hora de alterar, o obj esta com os valores antigos!!
todos os valores originais e nao os novos!

alguem sabe pq??

dansouza

Dica: seta um breakpoint na linha do seu MB antes de chamar a inserção e veja os valores do seu objeto!
Se estiverem corretos no objeto que vc manda para o banco, talvez seja um problema de persistência.

[]'s

tiagoemerick

talvez eu tenha me expressado mal…

eu ainda nem chego a persistir no banco. (Esta linha está comentada).
É assim:

Estou em uma listagem com os registros. Clico no link de um registro, passo por uma classe X no método abrirDados, onde eu busco o objeto pelo id.
O objeto vem corretamente com todos os campos e retorna para a JSP. Na JSP os dados são apresentados corretamente!

Altero algum campo de texto por exemplo e clico no botão alterar.
Ela vai pra mesma classe X anterior no método alterar.
Quando eu dou um inspect no objeto da classe(que eu estou alterando), ele está com os mesmos valores de quando eu fiz a busca por id e não com os da tela.

Já que o JSF está preenchendo minha JSP automaticamente só de eu buscar meu obj na classe, achei que ele faria o mesmo quando fosse o inverso!
(e era pra ser né!)
Altero os valores da JSP e na classe é carregada automaticamente da tela…

Mas não acontece… =/

Obs: Meu objeto está com scope session. Não sei se tem algo a ver…

dansouza

Bom, a idéia do breakpoint ainda é válida.
Posta seu MB aí para gente ver.
Quando vc seta o objeto para ser alterado, a busca pelo id, etc…

tiagoemerick
Minha action...
public class ContaViewLogic implements GenericViewLogicInterface{

	private Conta conta;
	private Banco banco;
	private Tipoconta tipoconta;

	private ArrayList&lt;Conta&gt; contaList;
	private ArrayList&lt;Banco&gt; bancoList;
	private ArrayList&lt;Tipoconta&gt; tipoContaList;
	
	public ContaViewLogic() {
		this.conta = new Conta();
		this.banco = new Banco();
		this.tipoconta = new Tipoconta();
		this.contaList = new ArrayList&lt;Conta&gt;();
		this.bancoList = new ArrayList&lt;Banco&gt;();
		this.tipoContaList = new ArrayList&lt;Tipoconta&gt;();
	}
	
	public String abrirDados() {
		String retorno = new String("");
		
		Usuario usuarioSessao;
		try {
			usuarioSessao = UtilFacade.getContaFacade().getUsuarioSessao();
			if (usuarioSessao != null) {
				String codigoContaSelecionada = (String) UtilFacadeWeb.getRequestParameter("codigoContaSelecionada");
				if (codigoContaSelecionada != null && !codigoContaSelecionada.equals("")) {
					// Recupera a conta
					this.conta = (Conta) UtilDao.getContaDao().findById(conta, new Integer(codigoContaSelecionada));
					
					// Monta o select de banco
					montaListaBanco();
					
					// Monta o select de tipoConta
					montaListaTipoConta();
					
					retorno = Constantes.SUCESSO_ABRIR_DADOS;
				}
			} else {
				UtilMensagens.addMessageFatal(Constantes.MSG_SESSAO_EXPIRADA);
				retorno = Constantes.USUARIO_NAO_LOGADO;
			}
		} catch (Exception e) {
			System.out.println("Erro ao pegar usuario logado!");
			e.printStackTrace();
		}
		return retorno;
	}
	
	public String alterar() {
		String retorno = new String("");
		
		Usuario usuarioSessao;
		try {
			usuarioSessao = UtilFacade.getContaFacade().getUsuarioSessao();
			if (usuarioSessao != null) {
				// Seta os novos valores que ainda faltam pra conta e altera
				UtilFacade.getContaFacade().update(this.conta);
				
				this.contaList = UtilFacade.getContaFacade().getContaList(usuarioSessao);
				
				retorno = Constantes.CONTA_BANCARIA;
			} else {
				UtilMensagens.addMessageFatal(Constantes.MSG_SESSAO_EXPIRADA);
				retorno = Constantes.USUARIO_NAO_LOGADO;
			}
		} catch (Exception e) {
			System.out.println("Erro ao pegar usuario logado!");
			e.printStackTrace();
		}
		
		return retorno;
	}

	private void montaListaBanco() {
		this.bancoList = UtilFacade.getBancoFacade().getBancoList();
		ArrayList listaSelect = new ArrayList();   
		for (Iterator iterator = this.bancoList.iterator(); iterator.hasNext();) {
			Banco banco = (Banco) iterator.next();
			listaSelect.add(new SelectItem(banco, banco.getNomeBanco()));
		}
		this.bancoList = listaSelect;
	}

	private void montaListaTipoConta() {
		this.tipoContaList = UtilFacade.getTipoContaFacade().getTipoContaList();
		ArrayList listaSelect = new ArrayList();   
		for (Iterator iterator = this.tipoContaList.iterator(); iterator.hasNext();) {
			Tipoconta tipoconta = (Tipoconta) iterator.next();
			listaSelect.add(new SelectItem(tipoconta, tipoconta.getNomeTipoConta()));
		}
		this.tipoContaList = listaSelect;
	}

	public String abrirNovo() {
		String retorno = new String("");
		
//		Usuario usuarioSessao;
//		try {
//			usuarioSessao = UtilFacade.getContaFacade().getUsuarioSessao();
//			if (usuarioSessao != null) {
//				this.contaList = UtilFacade.getContaFacade().getContaList(usuarioSessao);
//				
//				retorno = Constantes.CONTA_BANCARIA;;
//			} else {
//				UtilMensagens.addMessageFatal(Constantes.MSG_SESSAO_EXPIRADA);
//				retorno = Constantes.USUARIO_NAO_LOGADO;
//			}
//		} catch (Exception e) {
//			System.out.println("Erro ao pegar usuario logado!");
//			e.printStackTrace();
//		}
		
		return retorno;
	}
	
	public String abrirListagem() {
		String retorno = new String("");
		
		Usuario usuarioSessao;
		try {
			usuarioSessao = UtilFacade.getContaFacade().getUsuarioSessao();
			if (usuarioSessao != null) {
				this.contaList = UtilFacade.getContaFacade().getContaList(usuarioSessao);
				
				retorno = Constantes.CONTA_BANCARIA;;
			} else {
				UtilMensagens.addMessageFatal(Constantes.MSG_SESSAO_EXPIRADA);
				retorno = Constantes.USUARIO_NAO_LOGADO;
			}
		} catch (Exception e) {
			System.out.println("Erro ao pegar usuario logado!");
			e.printStackTrace();
		}
		
		return retorno;
	}
	
	public String portal() {
		return Constantes.PORTAL;
	}
	
	public String salvar() {
		return "";
	}
	
	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}
	
	public ArrayList&lt;Conta&gt; getContaList() {
		return contaList;
	}

	public void setContaList(ArrayList&lt;Conta&gt; contaList) {
		this.contaList = contaList;
	}
	public Banco getBanco() {
		return banco;
	}

	public void setBanco(Banco banco) {
		this.banco = banco;
	}
	public ArrayList&lt;Banco&gt; getBancoList() {
		return bancoList;
	}

	public void setBancoList(ArrayList&lt;Banco&gt; bancoList) {
		this.bancoList = bancoList;
	}
	public ArrayList&lt;Tipoconta&gt; getTipoContaList() {
		return tipoContaList;
	}

	public void setTipoContaList(ArrayList&lt;Tipoconta&gt; tipoContaList) {
		this.tipoContaList = tipoContaList;
	}
	public Tipoconta getTipoconta() {
		return tipoconta;
	}

	public void setTipoconta(Tipoconta tipoconta) {
		this.tipoconta = tipoconta;
	}
}

Bean Conta(que é o bean que eu estou com problema que nao vem os valores alterados)

import org.hibernate.validator.NotEmpty;

/**
 * Conta generated by hbm2java
 */
public class Conta  implements java.io.Serializable {

	private static final long serialVersionUID = 3281258808117885832L;
	
	private int idConta;
    private Usuario usuario;
    private Tipoconta tipoconta;
    private Banco banco;
    @NotEmpty
    private String nomeConta;
    @NotEmpty
    private String agencia;
    @NotEmpty
    private String numeroConta;
    @NotEmpty
    private Date dataAbertura;
    private Float saldo;
    private String observacao;
    private char ativo;
    private Set&lt;Previsaoconta&gt; previsaocontas = new HashSet&lt;Previsaoconta&gt;(0);
    private Set&lt;Lancamentoconta&gt; lancamentocontas = new HashSet&lt;Lancamentoconta&gt;(0);

    public Conta() {
    }

    public Conta(int idConta, Usuario usuario, Tipoconta tipoconta, Banco banco, String nomeConta, String agencia, String numeroConta, Date dataAbertura, char ativo) {
        this.idConta = idConta;
        this.usuario = usuario;
        this.tipoconta = tipoconta;
        this.banco = banco;
        this.nomeConta = nomeConta;
        this.agencia = agencia;
        this.numeroConta = numeroConta;
        this.dataAbertura = dataAbertura;
        this.ativo = ativo;
    }
    public Conta(int idConta, Usuario usuario, Tipoconta tipoconta, Banco banco, String nomeConta, String agencia, String numeroConta, Date dataAbertura, Float saldo, String observacao, char ativo, Set&lt;Previsaoconta&gt; previsaocontas, Set&lt;Lancamentoconta&gt; lancamentocontas) {
       this.idConta = idConta;
       this.usuario = usuario;
       this.tipoconta = tipoconta;
       this.banco = banco;
       this.nomeConta = nomeConta;
       this.agencia = agencia;
       this.numeroConta = numeroConta;
       this.dataAbertura = dataAbertura;
       this.saldo = saldo;
       this.observacao = observacao;
       this.ativo = ativo;
       this.previsaocontas = previsaocontas;
       this.lancamentocontas = lancamentocontas;
    }
   
    public int getIdConta() {
        return this.idConta;
    }
    
    public void setIdConta(int idConta) {
        this.idConta = idConta;
    }
    public Usuario getUsuario() {
        return this.usuario;
    }
    
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    public Tipoconta getTipoconta() {
        return this.tipoconta;
    }
    
    public void setTipoconta(Tipoconta tipoconta) {
        this.tipoconta = tipoconta;
    }
    public Banco getBanco() {
        return this.banco;
    }
    
    public void setBanco(Banco banco) {
        this.banco = banco;
    }
    public String getNomeConta() {
        return this.nomeConta;
    }
    
    public void setNomeConta(String nomeConta) {
        this.nomeConta = nomeConta;
    }
    public String getAgencia() {
        return this.agencia;
    }
    
    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }
    public String getNumeroConta() {
        return this.numeroConta;
    }
    
    public void setNumeroConta(String numeroConta) {
        this.numeroConta = numeroConta;
    }
    public Date getDataAbertura() {
        return this.dataAbertura;
    }
    
    public void setDataAbertura(Date dataAbertura) {
        this.dataAbertura = dataAbertura;
    }
    public Float getSaldo() {
        return this.saldo;
    }
    
    public void setSaldo(Float saldo) {
        this.saldo = saldo;
    }
    public String getObservacao() {
        return this.observacao;
    }
    
    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }
    public char getAtivo() {
        return this.ativo;
    }
    
    public void setAtivo(char ativo) {
        this.ativo = ativo;
    }
    public Set&lt;Previsaoconta&gt; getPrevisaocontas() {
        return this.previsaocontas;
    }
    
    public void setPrevisaocontas(Set&lt;Previsaoconta&gt; previsaocontas) {
        this.previsaocontas = previsaocontas;
    }
    public Set&lt;Lancamentoconta&gt; getLancamentocontas() {
        return this.lancamentocontas;
    }
    
    public void setLancamentocontas(Set&lt;Lancamentoconta&gt; lancamentocontas) {
        this.lancamentocontas = lancamentocontas;
    }

    public boolean equals(Object obj) {
    	// TODO Auto-generated method stub
    	return super.equals(obj);
    }

    public int hashCode() {
    	// TODO Auto-generated method stub
    	return super.hashCode();
    }

}

E a JSP que passa pela action acima, traz os dados corretamentes, mas ao alterar algo e jogar na mesma action acima, ainda ta com os valores antigos e nao os novos..

&lt;%@page contentType="text/html"%&gt;
&lt;%@page pageEncoding="UTF-8"%&gt;

&lt;%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%&gt;
&lt;%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%&gt;
&lt;%@ taglib uri="http://richfaces.org/rich" prefix="rich"%&gt;
&lt;%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%&gt;

&lt;html&gt;
	&lt;head&gt;
		&lt;link href="css/atributos.css" rel="stylesheet" type="text/css"/&gt;
		&lt;script type="text/javascript"&gt;
			function jsHabilitaCampo() {
				var selectTipoConta = document.getElementById("formContasBancariasDados:idTipoConta1");
				if(selectTipoConta != null){
					var inputTipoConta = document.getElementById("formContasBancariasDados:nomeTipoConta");
					var inputTipoContaHidden = document.getElementById("formContasBancariasDados:idTipoConta");
					if (selectTipoConta.value == 1) { // Novo tipo de conta
						inputTipoContaHidden.value = 1;
						inputTipoConta.disabled = false;
					} else {
						inputTipoContaHidden.value = 0;
						inputTipoConta.value = '';
						inputTipoConta.required = false;
						inputTipoConta.disabled = true;
					}
				}
			}
		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;f:view&gt;
			&lt;h:form id="formContasBancariasDados" style="width: 100%;"&gt;
				&lt;!-- Modal de informações do desenvolvedor --&gt;
				&lt;rich:modalPanel id="panel" width="350" height="190"&gt;
			        &lt;f:facet name="header"&gt;
			            &lt;h:panelGroup&gt;
			                &lt;h:outputText value="Financeiro"&gt;&lt;/h:outputText&gt;
			            &lt;/h:panelGroup&gt;
			        &lt;/f:facet&gt;
			        &lt;f:facet name="controls"&gt;
			            &lt;h:panelGroup&gt;
			                &lt;h:graphicImage value="/images/close.png" style="cursor:pointer" id="hidelink"/&gt;
			                &lt;rich:componentControl for="panel" attachTo="hidelink" operation="hide" event="onclick"/&gt;
			            &lt;/h:panelGroup&gt;
			        &lt;/f:facet&gt;
					&lt;rich:tabPanel switchType="client" width="97%" immediate="true"&gt;
						&lt;rich:tab label="Informações Desenvolvedor" immediate="true"&gt;
							&lt;rich:separator/&gt;
					        &lt;h:outputText value="Nome: Tiago Anozé Emerick" style="font-size: 13;"&gt;&lt;/h:outputText&gt;
					        <br/>
							&lt;rich:separator height="3" lineType="dotted"/&gt;
					        &lt;h:outputText value="Email: [email removido]" style="font-size: 13;"&gt;&lt;/h:outputText&gt;
					        <br/>
							&lt;rich:separator height="3" lineType="dotted"/&gt;
					        &lt;h:outputText value="Telefone: ([telefone removido]" style="font-size: 13;"&gt;&lt;/h:outputText&gt;
							&lt;rich:separator /&gt;
						&lt;/rich:tab&gt;
						&lt;rich:tab label="Mude a cara do seu sistema" immediate="true"&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="DEFAULT" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/cinza.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="plain" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/branco.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="emeraldTown" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/verde.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="blueSky" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/azulClaro.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="wine" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/verdeFumaca.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="japanCherry" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/rosa.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="ruby" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/vermelho.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;h:commandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="classic" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/azulEscuro.JPG" style="border: none" /&gt;
							&lt;/h:commandLink&gt;
							&lt;a4j:htmlCommandLink immediate="true"&gt;
						        &lt;a4j:actionparam name="skin" value="deepMarine" assignTo="#{skinBean.skin}" /&gt;
						        &lt;h:graphicImage value="/images/skins/aqua.JPG" style="border: none" /&gt;
							&lt;/a4j:htmlCommandLink&gt;
						&lt;/rich:tab&gt;
					&lt;/rich:tabPanel&gt;

			    &lt;/rich:modalPanel&gt;
				&lt;rich:panel&gt;
					&lt;f:facet name="header"&gt;
						&lt;h:outputLink value="#" id="link"&gt;
					        Financeiro
					        &lt;rich:componentControl for="panel" attachTo="link" operation="show" event="onclick"/&gt;
					    &lt;/h:outputLink&gt;
					&lt;/f:facet&gt;

					&lt;div id="containerMsg" align="left"&gt;
						&lt;h:panelGrid columns="1"&gt;
							&lt;h:messages id="msgs" globalOnly="true" styleClass="msgGlobalError" /&gt;
						&lt;/h:panelGrid&gt;
					&lt;/div&gt;
					&lt;h:panelGrid columns="3"&gt;
						&lt;h:outputLabel for="nomeBanco" value="Banco" styleClass="inputText"/&gt;				
						&lt;h:selectOneMenu id="nomeBanco" value="#{contaViewLogic.conta.banco}" required="true"&gt;
							&lt;f:selectItem itemValue="" itemLabel="Atual: #{contaViewLogic.conta.banco.nomeBanco}"/&gt;
							&lt;f:selectItems value="#{contaViewLogic.bancoList}"/&gt;
							&lt;f:converter converterId="bancoConverter" /&gt; 
						&lt;/h:selectOneMenu&gt;
						&lt;rich:message for="nomeBanco"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;

						&lt;h:outputLabel for="nomeTipoConta" value="Tipo conta" styleClass="inputText"/&gt;
						&lt;h:selectOneMenu id="nomeTipoConta" value="#{contaViewLogic.conta.tipoconta}" required="true" onchange="jsHabilitaCampo();"&gt;
							&lt;f:selectItem itemValue=""  itemLabel="Atual: #{contaViewLogic.conta.tipoconta.nomeTipoConta}"/&gt;
							&lt;f:selectItems value="#{contaViewLogic.tipoContaList}"/&gt;
							&lt;f:converter converterId="tipoContaConverter" /&gt; 
						&lt;/h:selectOneMenu&gt;
						&lt;rich:message for="nomeTipoConta"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;

						&lt;h:outputLabel for="nomeTipoConta1" value="Novo tipo conta*" styleClass="inputText"/&gt;
						&lt;h:inputText id="nomeTipoConta1" value="#{tipoconta.nomeTipoConta}" required="true" disabled="true" requiredMessage="Campo 'Novo tipo conta' obrigatório" style="width: 250px;"/&gt;
						&lt;rich:message for="nomeTipoConta1"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;		

						&lt;h:outputLabel for="nomeConta" value="Nome conta*" styleClass="inputText"/&gt;
						&lt;h:inputText id="nomeConta" value="#{contaViewLogic.conta.nomeConta}" required="true" requiredMessage="Campo 'Nome conta' obrigatório" style="width: 250px;"&gt;
							&lt;rich:beanValidator summary="Invalid nomeConta"/&gt;
						&lt;/h:inputText&gt;
						&lt;rich:message for="nomeConta"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;		

						&lt;h:outputLabel for="agencia" value="Agência*" styleClass="inputText"/&gt;
						&lt;h:inputText id="agencia" value="#{contaViewLogic.conta.agencia}" required="true" requiredMessage="Campo 'Agência' obrigatório" style="width: 250px;"&gt;
							&lt;rich:beanValidator summary="Invalid agencia"/&gt;
						&lt;/h:inputText&gt;
						&lt;rich:message for="agencia"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;		

						&lt;h:outputLabel for="numeroConta" value="Número conta*" styleClass="inputText"/&gt;
						&lt;h:inputText id="numeroConta" value="#{contaViewLogic.conta.numeroConta}" required="true" requiredMessage="Campo 'Número conta' obrigatório" style="width: 250px;"&gt;
							&lt;rich:beanValidator summary="Invalid numeroConta"/&gt;
						&lt;/h:inputText&gt;
						&lt;rich:message for="numeroConta"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;		

						&lt;h:outputLabel for="observacao" value="Observação*" styleClass="inputText"/&gt;
						&lt;h:inputTextarea id="observacao" value="#{contaViewLogic.conta.observacao}" requiredMessage="Campo 'Observação' obrigatório" style="width: 250px;"/&gt;
						&lt;rich:message for="observacao"&gt;
	                        &lt;f:facet name="passedMarker"&gt;
	                            &lt;h:graphicImage value="/images/passed.gif" /&gt; 
	                        &lt;/f:facet&gt;
	                        &lt;f:facet name="errorMarker"&gt;
	                            &lt;h:graphicImage value="/images/error.gif" /&gt;   
	                        &lt;/f:facet&gt;
	                    &lt;/rich:message&gt;		

					&lt;/h:panelGrid&gt;
					<br>
					&lt;rich:toolBar&gt;
						&lt;h:commandButton id="buttonAlterarConta" immediate="true" value="Alterar" action="#{contaViewLogic.alterar}"/&gt;
						&lt;h:commandButton id="buttonVoltar" immediate="true" value="Voltar" action="#{contaViewLogic.abrirListagem}"/&gt;
					&lt;/rich:toolBar&gt;
				&lt;/rich:panel&gt;
			&lt;/h:form&gt;
		&lt;/f:view&gt;
	&lt;/body&gt;
&lt;/html&gt;

Nesta JSP tem um esquema com o javaScript pra habilitar um campo, mas esquece isso.. tava em fase desenvolvimento.. nada a ver, ok?!

Quem puder me ajudar!!
Agradeco mt!

Criado 31 de janeiro de 2008
Ultima resposta 5 de nov. de 2008
Respostas 10
Participantes 4