Minha action...
public class ContaViewLogic implements GenericViewLogicInterface{
private Conta conta;
private Banco banco;
private Tipoconta tipoconta;
private ArrayList<Conta> contaList;
private ArrayList<Banco> bancoList;
private ArrayList<Tipoconta> tipoContaList;
public ContaViewLogic() {
this.conta = new Conta();
this.banco = new Banco();
this.tipoconta = new Tipoconta();
this.contaList = new ArrayList<Conta>();
this.bancoList = new ArrayList<Banco>();
this.tipoContaList = new ArrayList<Tipoconta>();
}
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<Conta> getContaList() {
return contaList;
}
public void setContaList(ArrayList<Conta> contaList) {
this.contaList = contaList;
}
public Banco getBanco() {
return banco;
}
public void setBanco(Banco banco) {
this.banco = banco;
}
public ArrayList<Banco> getBancoList() {
return bancoList;
}
public void setBancoList(ArrayList<Banco> bancoList) {
this.bancoList = bancoList;
}
public ArrayList<Tipoconta> getTipoContaList() {
return tipoContaList;
}
public void setTipoContaList(ArrayList<Tipoconta> 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<Previsaoconta> previsaocontas = new HashSet<Previsaoconta>(0);
private Set<Lancamentoconta> lancamentocontas = new HashSet<Lancamentoconta>(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<Previsaoconta> previsaocontas, Set<Lancamentoconta> 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<Previsaoconta> getPrevisaocontas() {
return this.previsaocontas;
}
public void setPrevisaocontas(Set<Previsaoconta> previsaocontas) {
this.previsaocontas = previsaocontas;
}
public Set<Lancamentoconta> getLancamentocontas() {
return this.lancamentocontas;
}
public void setLancamentocontas(Set<Lancamentoconta> 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..
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<html>
<head>
<link href="css/atributos.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">
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;
}
}
}
</script>
</head>
<body>
<f:view>
<h:form id="formContasBancariasDados" style="width: 100%;">
<!-- Modal de informações do desenvolvedor -->
<rich:modalPanel id="panel" width="350" height="190">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Financeiro"></h:outputText>
</h:panelGroup>
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="/images/close.png" style="cursor:pointer" id="hidelink"/>
<rich:componentControl for="panel" attachTo="hidelink" operation="hide" event="onclick"/>
</h:panelGroup>
</f:facet>
<rich:tabPanel switchType="client" width="97%" immediate="true">
<rich:tab label="Informações Desenvolvedor" immediate="true">
<rich:separator/>
<h:outputText value="Nome: Tiago Anozé Emerick" style="font-size: 13;"></h:outputText>
<br/>
<rich:separator height="3" lineType="dotted"/>
<h:outputText value="Email: [email removido]" style="font-size: 13;"></h:outputText>
<br/>
<rich:separator height="3" lineType="dotted"/>
<h:outputText value="Telefone: ([telefone removido]" style="font-size: 13;"></h:outputText>
<rich:separator />
</rich:tab>
<rich:tab label="Mude a cara do seu sistema" immediate="true">
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="DEFAULT" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/cinza.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="plain" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/branco.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="emeraldTown" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/verde.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="blueSky" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/azulClaro.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="wine" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/verdeFumaca.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="japanCherry" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/rosa.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="ruby" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/vermelho.JPG" style="border: none" />
</h:commandLink>
<h:commandLink immediate="true">
<a4j:actionparam name="skin" value="classic" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/azulEscuro.JPG" style="border: none" />
</h:commandLink>
<a4j:htmlCommandLink immediate="true">
<a4j:actionparam name="skin" value="deepMarine" assignTo="#{skinBean.skin}" />
<h:graphicImage value="/images/skins/aqua.JPG" style="border: none" />
</a4j:htmlCommandLink>
</rich:tab>
</rich:tabPanel>
</rich:modalPanel>
<rich:panel>
<f:facet name="header">
<h:outputLink value="#" id="link">
Financeiro
<rich:componentControl for="panel" attachTo="link" operation="show" event="onclick"/>
</h:outputLink>
</f:facet>
<div id="containerMsg" align="left">
<h:panelGrid columns="1">
<h:messages id="msgs" globalOnly="true" styleClass="msgGlobalError" />
</h:panelGrid>
</div>
<h:panelGrid columns="3">
<h:outputLabel for="nomeBanco" value="Banco" styleClass="inputText"/>
<h:selectOneMenu id="nomeBanco" value="#{contaViewLogic.conta.banco}" required="true">
<f:selectItem itemValue="" itemLabel="Atual: #{contaViewLogic.conta.banco.nomeBanco}"/>
<f:selectItems value="#{contaViewLogic.bancoList}"/>
<f:converter converterId="bancoConverter" />
</h:selectOneMenu>
<rich:message for="nomeBanco">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="nomeTipoConta" value="Tipo conta" styleClass="inputText"/>
<h:selectOneMenu id="nomeTipoConta" value="#{contaViewLogic.conta.tipoconta}" required="true" onchange="jsHabilitaCampo();">
<f:selectItem itemValue="" itemLabel="Atual: #{contaViewLogic.conta.tipoconta.nomeTipoConta}"/>
<f:selectItems value="#{contaViewLogic.tipoContaList}"/>
<f:converter converterId="tipoContaConverter" />
</h:selectOneMenu>
<rich:message for="nomeTipoConta">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="nomeTipoConta1" value="Novo tipo conta*" styleClass="inputText"/>
<h:inputText id="nomeTipoConta1" value="#{tipoconta.nomeTipoConta}" required="true" disabled="true" requiredMessage="Campo 'Novo tipo conta' obrigatório" style="width: 250px;"/>
<rich:message for="nomeTipoConta1">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="nomeConta" value="Nome conta*" styleClass="inputText"/>
<h:inputText id="nomeConta" value="#{contaViewLogic.conta.nomeConta}" required="true" requiredMessage="Campo 'Nome conta' obrigatório" style="width: 250px;">
<rich:beanValidator summary="Invalid nomeConta"/>
</h:inputText>
<rich:message for="nomeConta">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="agencia" value="Agência*" styleClass="inputText"/>
<h:inputText id="agencia" value="#{contaViewLogic.conta.agencia}" required="true" requiredMessage="Campo 'Agência' obrigatório" style="width: 250px;">
<rich:beanValidator summary="Invalid agencia"/>
</h:inputText>
<rich:message for="agencia">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="numeroConta" value="Número conta*" styleClass="inputText"/>
<h:inputText id="numeroConta" value="#{contaViewLogic.conta.numeroConta}" required="true" requiredMessage="Campo 'Número conta' obrigatório" style="width: 250px;">
<rich:beanValidator summary="Invalid numeroConta"/>
</h:inputText>
<rich:message for="numeroConta">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
<h:outputLabel for="observacao" value="Observação*" styleClass="inputText"/>
<h:inputTextarea id="observacao" value="#{contaViewLogic.conta.observacao}" requiredMessage="Campo 'Observação' obrigatório" style="width: 250px;"/>
<rich:message for="observacao">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
</h:panelGrid>
<br>
<rich:toolBar>
<h:commandButton id="buttonAlterarConta" immediate="true" value="Alterar" action="#{contaViewLogic.alterar}"/>
<h:commandButton id="buttonVoltar" immediate="true" value="Voltar" action="#{contaViewLogic.abrirListagem}"/>
</rich:toolBar>
</rich:panel>
</h:form>
</f:view>
</body>
</html>
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!