Boa noite !
Tenho uma View em que uso a tag <h:selectOneMenu >. Ocorre que ao selecionar uma opção o atributo relacionado a ela (acessibilidadeSelecionada) no Bean não é atualizado e fica como null.
Minha View
<rich:tab label="Acessibilidade">
<rich:panel header="Acessibilidade">
<h:panelGrid columns="3" columnClasses="nome,valor,nome">
<h:outputText value="Acessibilidades:" />
<h:panelGroup>
<h:selectOneMenu id="acessibilidade"
value="#{obraBean.acessibilidadeSelecionada}"
converter="AcessibilidadeConversor">
<f:selectItem itemLabel="" itemValue=""/>
<f:selectItems value="#{obraBean.acessibilidadeItens}"/>
</h:selectOneMenu>
<a4j:commandButton ajaxSingle="true" id="botaoacessibilidade" value="Adicionar"
styleClass="botao"
action="#{obraBean.adicionarAcessibilidade}">
</a4j:commandButton>
</h:panelGroup>
</h:panelGrid>
</rich:panel>
Meu Bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
@Controller("obraBean")
@Scope("session")
public class ObraBean {
@Resource
private ObraService obraService;
@Resource
private EmpresaService empresaService;
@Resource
private UFService ufService;
@Resource
private ConfiguracaoService configuracaoService;
@Resource
private CidadeService cidadeService;
@Resource
private ComunicacaoService comunicacaoService;
@Resource
private UnidadeTreService unidadetreService;
@Resource
private ServidorService servidorService;
@Resource
private AcessibilidadeService acessibilidadeService;
private Obra obra;
private List<Obra> listaObra = new ArrayList<Obra>();
private List<Empresa> listaEmpresa = new ArrayList<Empresa>();
private List<Cidade> listaCidade = new ArrayList<Cidade>();
private List<Servidor> listaServidor = new ArrayList<Servidor>();
private List<Comunicacao> listaComunicacao = new ArrayList<Comunicacao>();
private List<UnidadeTre> listaUnidadetre = new ArrayList<UnidadeTre>();
private List<Acessibilidade> listaAcessibilidade = new ArrayList<Acessibilidade>();
private Acessibilidade acessibilidadeSelecionada;
private static Logger logger = Logger.getLogger(ObraBean.class);
public String novo() {
this.obra = new Obra();
return "formObra";
}
public String adicionarAcessibilidade() {
if (acessibilidadeSelecionada == null ) {
FacesUtil.mensErro("Informe a Acessibilidade !");
}
else {
listaAcessibilidade.add(acessibilidadeSelecionada);
}
return null;
}
public List<SelectItem> getAcessibilidadeItens() {
List<SelectItem> itens = new ArrayList<SelectItem>(getListaAcessibilidade().size());
for (Acessibilidade s : getListaAcessibilidade()) {
itens.add(new SelectItem(s, s.getDescricao()));
}
return itens;
}
public List<Acessibilidade> getListaAcessibilidade() {
if (listaAcessibilidade == null || listaAcessibilidade.isEmpty()) {
listaAcessibilidade = acessibilidadeService.buscarTodos("descricao");
}
return listaAcessibilidade;
}
public void setListaAcessibilidade(List<Acessibilidade> listaAcessibilidade) {
this.listaAcessibilidade = listaAcessibilidade;
}
public Acessibilidade getAcessibilidadeSelecionada() {
return acessibilidadeSelecionada;
}
public void setAcessibilidadeSelecionada(Acessibilidade acessibilidadeSelecionada) {
this.acessibilidadeSelecionada = acessibilidadeSelecionada;
}
}
Onde estou errando ?