JSF não está atribuindo valores nas variaveis

10 respostas
Y

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

G

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
}
Y

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>
G

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.

Y

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.

G

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

T

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??

D

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

T

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…

D

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…

T
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