I need to use JSF 1.2 for client restriction.
I'm using selectOneMenu
to select the type of person (Physics / Legal) and change the mask dynamically with <a4j:support>
and it's working.
But the Bean when receiving the value CNPJ is coming null, see below:
<rich:column id="col-id-pessoa">
<h:selectOneMenu id="tipo-pessoa"
value="#{atividadeController.tipoPessoa}"
valueChangeListener="#{atividadeController.mudancaTipoPessoaListener() }">
<f:selectItem itemLabel="Física" itemValue="F" />
<f:selectItem itemLabel="Jurídica" itemValue="J" />
<a4j:support event="onclick" ajaxSingle="true" reRender="colCPF">
</a4j:support>
</h:selectOneMenu>
</rich:column>
<rich:column id="colCPF">
<h:inputText value="#{atividadeController.cpf }"
id="cpf" styleClass="cpf" required="true"
requiredMessage="CPF/CNPJ é um dado obrigatório"
rendered="#{atividadeController.tipoPessoa eq 'F' }">
</h:inputText>
<h:inputText value="#{atividadeController.cnpj }"
id="cnpj" styleClass="cnpj" required="true"
requiredMessage="CPF/CNPJ é um dado obrigatório"
rendered="#{atividadeController.tipoPessoa eq 'J' }">
</h:inputText>
</rich:column>
The masks work, but in the Bean the value of the field cnpj
is coming null, cpf
is filled correctly.
package com.porto.npf.sgpsweb.controller;
import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List;
import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ValueChangeEvent; import javax.faces.model.SelectItem; import javax.servlet.http.HttpSession;
import com.porto.npf.sgpsweb.bo.AnaliseRHBO; import com.porto.npf.sgpsweb.bo.AtividadeBO; import com.porto.npf.sgpsweb.bo.EnovolvidosBO; import com.porto.npf.sgpsweb.bo.CompanyBO; import com.porto.npf.sgpsweb.bo.PrioridadeBO; import com.porto.npf.sgpsweb.bo.SolicitanteBO; import com.porto.npf.sgpsweb.bo.StatusAbb; import com.porto.npf.sgpsweb.bo.TipoAtividadeBO; import com.porto.npf.sgpsweb.bo.UsuarioBO; import com.porto.npf.sgpsweb.entity.AnaliseRH; import com.porto.npf.sgpsweb.entity.Activity; import com.porto.npf.sgpsweb.entity.Activity; import com.porto.npf.sgpsweb.entity.Company; import com.porto.npf.sgpsweb.entity.Priority; import com.porto.npf.sgpsweb.entity. Applicant; import com.porto.npf.sgpsweb.entity.StatusActivity; import com.porto.npf.sgpsweb.entity.TipoAtividade; import com.porto.npf.sgpsweb.entity.Usuario; import com.porto.npf.sgpsweb.exception.NegocioException; import com.porto.npf.sgpsweb.util.ValidaCNPJ; import com.porto.npf.sgpsweb.util.ValidaCPF;
public class ActivityController extends BaseController implements Serializable { private static final long serialVersionUID = -3084067945627378605L; private static final String OUTCOME="formActivity"; HttpSession session = (HttpSession) FacesContext.getCurrentInstance () .getExternalContext (). getSession (true);
// Lista de empresas
private List<Empresa> listaDeEmpresasAtivas = new ArrayList<Empresa>();
private List<SelectItem> listaSelectEmpresasAtivas;
// Lista de Solicitantes
private List<Solicitante> listaDeSolicitantesAtivos = new ArrayList<Solicitante>();
private List<SelectItem> listaSelectSolicitantesAtivos;
// Lista de status da atividade
private List<StatusAtividade> listaDeStatusAtivos = new ArrayList<StatusAtividade>();
private List<SelectItem> listaSelectStatusAtivos;
// Lista de prioridades
private List<Prioridade> listaPrioridadesAtivas = new ArrayList<Prioridade>();
private List<SelectItem> listaSelectPrioridadesAtivas;
// Lista de Responsável pela atividade
private List<Usuario> listaUsuariosAtivos = new ArrayList<Usuario>();
private List<SelectItem> listaSelectUsuariosAtivos;
// Lista de Tipos de Atividades
private List<TipoAtividade> listaTiposAtividadeAtivos = new ArrayList<TipoAtividade>();
private List<SelectItem> listaSelectTiposAtividadesAtivos;
// Lista de Envolvidos na análise
private List<AtividadeEnvolvidos> listaDeEnvolvidos = new ArrayList<AtividadeEnvolvidos>();
// Lista de CPF de analises de RH
private List<AnaliseRH> listaAnaliseRH = new ArrayList<AnaliseRH>();
// Business Objects
private EmpresaBO empBO;
private AtividadeBO atividadeBO;
private SolicitanteBO solicitanteBO;
private StatusAtividadeBO sttBO;
private PrioridadeBO priorBO;
private UsuarioBO usuarioBO;
private TipoAtividadeBO tipoBO;
private AtividadeEnvolvidosBO envolvidosBO;
private AnaliseRHBO analiseRHBO;
// Atributos
private Integer empresaId;
private Integer id;
private String codigoAtividade;
private Integer solicitanteId;
private Integer statusatividadeId;
private String descricaoAtividade;
private Integer prioridadeId;
private Integer responsavelatividadeId;
private String responsavelRegistro;
private Integer tipoatividadeId;
private Date dataCriacao;
private Date dataSolicitacao;
private Date dataPrevia;
private Date dataInicio;
private Date dataPrevicaoEntrega;
private Date dataConclusao;
private String solicitacao;
private String descricao;
private String conclusao;
// Atributo que controla a aba
private String abaAtiva;
// Envolvidos
private String tipoPessoa;
private String cpf;
private String cnpj;
private String nomeEnvolvido;
private String styleClassTipoPessoa;
/**
* Construtor
*/
public AtividadeController() {
// Instancia todos os objetos de negócio
empBO = new EmpresaBO();
atividadeBO = new AtividadeBO();
solicitanteBO = new SolicitanteBO();
sttBO = new StatusAtividadeBO();
priorBO = new PrioridadeBO();
usuarioBO = new UsuarioBO();
tipoBO = new TipoAtividadeBO();
envolvidosBO = new AtividadeEnvolvidosBO();
analiseRHBO = new AnaliseRHBO();
// Inicializa o bean
inicializaBean();
} // fim do construtor
/**
* Método que inicializa o Bean
*
*/
private void inicializaBean(){
//listaDeEmpresasAtivas.clear();
//listaSelectEmpresasAtivas.clear();
Integer idSessao = (Integer) getAtributoSessao("ssIdAtividade");
// Se foi passado como parâmetro o id para edição, então pesquisa e preenche a tela
if (idSessao > 0) {
Atividade atividade = new Atividade();
try {
// Obtém a atividade e popula o form
atividade = atividadeBO.getAtividadePorId(idSessao);
id = atividade.getId();
empresaId = atividade.getEmpresa().getId();
codigoAtividade = atividade.getCodigoAtividade();
solicitanteId = atividade.getSolicitante().getId();
statusatividadeId = atividade.getStatusAtividade().getId();
descricaoAtividade = atividade.getDescricaoAtividade();
prioridadeId = atividade.getPrioridade().getId();
if (atividade.getResponsavelAtividade()==null) {
responsavelatividadeId = 0;
} else {
responsavelatividadeId = atividade.getResponsavelAtividade().getId();
}
responsavelRegistro = atividade.getResponsavelRegistro();
tipoatividadeId = atividade.getTipoAtividade().getId();
dataCriacao = atividade.getDataCriacao();
dataSolicitacao = atividade.getDataSolicitacao();
dataPrevia = atividade.getDataPrevia();
dataInicio = atividade.getDataInicio();
dataPrevicaoEntrega = atividade.getDataPrevisaoEntrega();
dataConclusao = atividade.getDataConclusao();
solicitacao = atividade.getSolicitacao();
descricao = atividade.getDescricao();
conclusao = atividade.getConclusao();
// Define a aba ao iniciar
abaAtiva = "aba1";
styleClassTipoPessoa = "cpf";
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage("Problemas ao obter Atividade");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
} //
// Envolvidos
tipoPessoa = "F";
} // fim do método inicializaBean
/**
* Método que é acionado quando existe mudança no tipo de pessoa no cadastro de envolvidos
*
* @return
*/
public void mudancaTipoPessoaListener(ValueChangeEvent event) {
tipoPessoa = (String) event.getNewValue();
if ("F".equals(tipoPessoa)) {
styleClassTipoPessoa = "cpf";
} else {
styleClassTipoPessoa = "cnpj";
}
} // fim do método mudancaTipoPessoaListener
/**
* Método que processa a persistencia dos dados do envolvido
*
* @return
*/
public String salvarEnvolvido(){
AtividadeEnvolvidos atvEnvolvidos = new AtividadeEnvolvidos();
/*
if (!"".equals(cpf)) {
atvEnvolvidos.setCpfCnpj(cpf);
} else {
atvEnvolvidos.setCpfCnpj(cnpj);
}
*/
if ("J".equals(tipoPessoa)) {
if (ValidaCNPJ.isCNPJ(cnpj)) {
atvEnvolvidos.setCpfCnpj(cnpj);
} else {
FacesMessage msg = new FacesMessage("CNPJ Inválido");
FacesContext.getCurrentInstance().addMessage(null, msg);
return null;
}
} else {
if (ValidaCPF.isCPF(cpf)) {
atvEnvolvidos.setCpfCnpj(cpf);
} else {
FacesMessage msg = new FacesMessage("CPF Inválido");
FacesContext.getCurrentInstance().addMessage(null, msg);
return null;
}
}
atvEnvolvidos.setNome(nomeEnvolvido);
atvEnvolvidos.setTipoPessoa(tipoPessoa);
atvEnvolvidos.setAtividadeId(id);
try {
envolvidosBO.salvar(atvEnvolvidos);
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage("Problemas ao Salvar o Envolvido");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
abaAtiva = "aba2";
return null;
}
/**
* Listener que processa a limpeza do formulário
*/
public void iniciarEnvolvidosListerner(){
tipoPessoa = "F";
nomeEnvolvido = "";
cpf = "";
cnpj = "";
}
/**
* Método que busca o objeto no BD e preenche a tela para edição
*
* @param id
* @return
*/
public String editarEnvolvido(Integer id){
AtividadeEnvolvidos envolvidos = new AtividadeEnvolvidos();
try {
envolvidos = envolvidosBO.getAtividadeEnvolvidosPorId(id);
tipoPessoa = envolvidos.getTipoPessoa();
if ("F".equals(envolvidos.getTipoPessoa())) {
cpf = envolvidos.getCpfCnpj();
} else {
cnpj = envolvidos.getCpfCnpj();
}
nomeEnvolvido = envolvidos.getNome();
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage("Problemas ao Salvar o Envolvido");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return OUTCOME;
} // fim do método editarEnvolvido
/**
* Método que atualiza o tempo gasto
*
* @return
*/
public String atualizarTempoGastoNaAtividade() {
return OUTCOME;
} // fim do método atualizarTempoGastoNaAtividade
// Botão voltar
public String voltar() {
String retorno = OUTCOME;
String tipoUsuario = (String) getAtributoSessao("tipoUsuario");
if (tipoUsuario.equals("C")) {
retorno = "areaPrincipalCliente";
}
return retorno;
} // fim do método voltar
// Getters e Setters
public List<Empresa> getListaDeEmpresasAtivas() {
return listaDeEmpresasAtivas;
}
public void setListaDeEmpresasAtivas(List<Empresa> listaDeEmpresasAtivas) {
this.listaDeEmpresasAtivas = listaDeEmpresasAtivas;
}
public Integer getEmpresaId() {
return empresaId;
}
public void setEmpresaId(Integer empresaId) {
this.empresaId = empresaId;
}
public List<SelectItem> getListaSelectEmpresasAtivas() {
try {
listaDeEmpresasAtivas = empBO.getListaEmpresasAtivas();
listaSelectEmpresasAtivas = new ArrayList<SelectItem>(
listaDeEmpresasAtivas.size());
for (Empresa e : listaDeEmpresasAtivas) {
listaSelectEmpresasAtivas.add(new SelectItem(e.getId(), e
.getNomeEmpresa()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Empresas Ativas");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectEmpresasAtivas;
}
public void setListaSelectEmpresasAtivas(
List<SelectItem> listaSelectEmpresasAtivas) {
this.listaSelectEmpresasAtivas = listaSelectEmpresasAtivas;
}
public String getCodigoAtividade() {
return codigoAtividade;
}
public void setCodigoAtividade(String codigoAtividade) {
this.codigoAtividade = codigoAtividade;
}
public List<Solicitante> getListaDeSolicitantesAtivos() {
return listaDeSolicitantesAtivos;
}
public void setListaDeSolicitantesAtivos(
List<Solicitante> listaDeSolicitantesAtivos) {
this.listaDeSolicitantesAtivos = listaDeSolicitantesAtivos;
}
public List<SelectItem> getListaSelectSolicitantesAtivos() {
try {
listaDeSolicitantesAtivos = solicitanteBO
.getListaTodosSolicitantesAtivos();
listaSelectSolicitantesAtivos = new ArrayList<SelectItem>(
listaDeSolicitantesAtivos.size());
for (Solicitante s : listaDeSolicitantesAtivos) {
listaSelectSolicitantesAtivos.add(new SelectItem(s.getId(), s
.getDescricaoSolicitante()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Solicitantes Ativos");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectSolicitantesAtivos;
}
public void setListaSelectSolicitantesAtivos(
List<SelectItem> listaSelectSolicitantesAtivos) {
this.listaSelectSolicitantesAtivos = listaSelectSolicitantesAtivos;
}
public Integer getSolicitanteId() {
return solicitanteId;
}
public void setSolicitanteId(Integer solicitanteId) {
this.solicitanteId = solicitanteId;
}
public List<StatusAtividade> getListaDeStatusAtivos() {
return listaDeStatusAtivos;
}
public void setListaDeStatusAtivos(List<StatusAtividade> listaDeStatusAtivos) {
this.listaDeStatusAtivos = listaDeStatusAtivos;
}
public List<SelectItem> getListaSelectStatusAtivos() {
try {
listaDeStatusAtivos = sttBO.getListaStatusAtividadeAtivos();
listaSelectStatusAtivos = new ArrayList<SelectItem>(
listaDeStatusAtivos.size());
for (StatusAtividade s : listaDeStatusAtivos) {
listaSelectStatusAtivos.add(new SelectItem(s.getId(), s
.getDescricaoStatus()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Status das Atividades Ativos");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectStatusAtivos;
}
public void setListaSelectStatusAtivos(
List<SelectItem> listaSelectStatusAtivos) {
this.listaSelectStatusAtivos = listaSelectStatusAtivos;
}
public Integer getStatusatividadeId() {
return statusatividadeId;
}
public void setStatusatividadeId(Integer statusatividadeId) {
this.statusatividadeId = statusatividadeId;
}
public String getDescricaoAtividade() {
return descricaoAtividade;
}
public void setDescricaoAtividade(String descricaoAtividade) {
this.descricaoAtividade = descricaoAtividade;
}
public Integer getPrioridadeId() {
return prioridadeId;
}
public void setPrioridadeId(Integer prioridadeId) {
this.prioridadeId = prioridadeId;
}
public List<Prioridade> getListaPrioridadesAtivas() {
return listaPrioridadesAtivas;
}
public void setListaPrioridadesAtivas(
List<Prioridade> listaPrioridadesAtivas) {
this.listaPrioridadesAtivas = listaPrioridadesAtivas;
}
public List<SelectItem> getListaSelectPrioridadesAtivas() {
try {
listaPrioridadesAtivas = priorBO.getListaPrioridadesAtivas();
listaSelectPrioridadesAtivas = new ArrayList<SelectItem>(
listaPrioridadesAtivas.size());
for (Prioridade p : listaPrioridadesAtivas) {
listaSelectPrioridadesAtivas.add(new SelectItem(p.getId(), p
.getDescricaoPrioridade()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Status das Atividades Ativos");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectPrioridadesAtivas;
}
public void setListaSelectPrioridadesAtivas(
List<SelectItem> listaSelectPrioridadesAtivas) {
this.listaSelectPrioridadesAtivas = listaSelectPrioridadesAtivas;
}
public Integer getResponsavelatividadeId() {
return responsavelatividadeId;
}
public void setResponsavelatividadeId(Integer responsavelatividadeId) {
this.responsavelatividadeId = responsavelatividadeId;
}
public List<Usuario> getListaUsuariosAtivos() {
return listaUsuariosAtivos;
}
public void setListaUsuariosAtivos(List<Usuario> listaUsuariosAtivos) {
this.listaUsuariosAtivos = listaUsuariosAtivos;
}
public List<SelectItem> getListaSelectUsuariosAtivos() {
try {
listaUsuariosAtivos = usuarioBO.getListaUsuariosInternosEAtivos();
listaSelectUsuariosAtivos = new ArrayList<SelectItem>(
listaUsuariosAtivos.size());
for (Usuario u : listaUsuariosAtivos) {
listaSelectUsuariosAtivos.add(new SelectItem(u.getId(), u
.getNomeUsuario()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Status das Atividades Ativos");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectUsuariosAtivos;
}
public void setListaSelectUsuariosAtivos(
List<SelectItem> listaSelectUsuariosAtivos) {
this.listaSelectUsuariosAtivos = listaSelectUsuariosAtivos;
}
public String getResponsavelRegistro() {
return responsavelRegistro;
}
public void setResponsavelRegistro(String responsavelRegistro) {
this.responsavelRegistro = responsavelRegistro;
}
public Integer getTipoatividadeId() {
return tipoatividadeId;
}
public void setTipoatividadeId(Integer tipoatividadeId) {
this.tipoatividadeId = tipoatividadeId;
}
public List<TipoAtividade> getListaTiposAtividadeAtivos() {
return listaTiposAtividadeAtivos;
}
public void setListaTiposAtividadeAtivos(
List<TipoAtividade> listaTiposAtividadeAtivos) {
this.listaTiposAtividadeAtivos = listaTiposAtividadeAtivos;
}
public List<SelectItem> getListaSelectTiposAtividadesAtivos() {
try {
listaTiposAtividadeAtivos = tipoBO.getListaTipoAtividadesAtivos();
listaSelectTiposAtividadesAtivos = new ArrayList<SelectItem>(
listaTiposAtividadeAtivos.size());
for (TipoAtividade t : listaTiposAtividadeAtivos) {
listaSelectTiposAtividadesAtivos.add(new SelectItem(t.getId(),
t.getDescricaoTipoAtividade()));
}
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Tipos das Atividades Ativos");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaSelectTiposAtividadesAtivos;
}
public void setListaSelectTiposAtividadesAtivos(
List<SelectItem> listaSelectTiposAtividadesAtivos) {
this.listaSelectTiposAtividadesAtivos = listaSelectTiposAtividadesAtivos;
}
public Date getDataCriacao() {
return dataCriacao;
}
public void setDataCriacao(Date dataCriacao) {
this.dataCriacao = dataCriacao;
}
public Date getDataSolicitacao() {
return dataSolicitacao;
}
public void setDataSolicitacao(Date dataSolicitacao) {
this.dataSolicitacao = dataSolicitacao;
}
public Date getDataPrevia() {
return dataPrevia;
}
public void setDataPrevia(Date dataPrevia) {
this.dataPrevia = dataPrevia;
}
public Date getDataInicio() {
return dataInicio;
}
public void setDataInicio(Date dataInicio) {
this.dataInicio = dataInicio;
}
public Date getDataPrevicaoEntrega() {
return dataPrevicaoEntrega;
}
public void setDataPrevicaoEntrega(Date dataPrevicaoEntrega) {
this.dataPrevicaoEntrega = dataPrevicaoEntrega;
}
public Date getDataConclusao() {
return dataConclusao;
}
public void setDataConclusao(Date dataConclusao) {
this.dataConclusao = dataConclusao;
}
public String getSolicitacao() {
return solicitacao;
}
public void setSolicitacao(String solicitacao) {
this.solicitacao = solicitacao;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getConclusao() {
return conclusao;
}
public void setConclusao(String conclusao) {
this.conclusao = conclusao;
}
public List<AtividadeEnvolvidos> getListaDeEnvolvidos() {
try {
listaDeEnvolvidos = envolvidosBO.getListaAtividadeEnvolvidosPorAtividadeId(id);
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage(
"Problemas ao obter a lista de Envolvidos nesta Atividade");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaDeEnvolvidos;
}
public void setListaDeEnvolvidos(List<AtividadeEnvolvidos> listaDeEnvolvidos) {
this.listaDeEnvolvidos = listaDeEnvolvidos;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTipoPessoa() {
return tipoPessoa;
}
public void setTipoPessoa(String tipoPessoa) {
this.tipoPessoa = tipoPessoa;
}
public String getNomeEnvolvido() {
return nomeEnvolvido;
}
public void setNomeEnvolvido(String nomeEnvolvido) {
this.nomeEnvolvido = nomeEnvolvido;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getAbaAtiva() {
return abaAtiva;
}
public void setAbaAtiva(String abaAtiva) {
this.abaAtiva = abaAtiva;
}
public String getStyleClassTipoPessoa() {
return styleClassTipoPessoa;
}
public void setStyleClassTipoPessoa(String styleClassTipoPessoa) {
this.styleClassTipoPessoa = styleClassTipoPessoa;
}
public List<AnaliseRH> getListaAnaliseRH() {
try {
listaAnaliseRH = analiseRHBO.getListaAnaliseRHPorAtividadeId(id);
} catch (NegocioException e) {
FacesMessage msg = new FacesMessage("Problemas ao obter a Lista de Análises do RH");
FacesContext.getCurrentInstance().addMessage(null, msg);
e.printStackTrace();
}
return listaAnaliseRH;
}
public void setListaAnaliseRH(List<AnaliseRH> listaAnaliseRH) {
this.listaAnaliseRH = listaAnaliseRH;
}
}