SelectOneMenu não atualiza atributo no Bean

2 respostas
W

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 ?

2 Respostas

luxu

se naum me engano esse componente retorna uma string…testa ae e me fale…

W

Resolvi da seguinte forma :

View :

[quote]
<h:outputText value=“Acessibilidades:” />
<h:panelGroup>
a4j:region
<h:selectOneMenu id=“acessibilidade”
immediate=“true”
converter=“AcessibilidadeConversor”
valueChangeListener="#{obraBean.alteraAcessibilidade}">
<f:selectItem itemLabel="" itemValue=""/>
<f:selectItems value="#{obraBean.acessibilidadeItens}"/>
<a4j:support event=“onchange”/>
</h:selectOneMenu>
</a4j:region>

<a4j:commandButton ajaxSingle="true" id="botaoacessibilidade" value="Adicionar"
                                 reRender="pnlgrpAcessibilidades"
                                 immediate="true"
                                 styleClass="botao"
                                 action="#{obraBean.adicionarAcessibilidade}">
              </a4j:commandButton>
             </h:panelGroup>

[quote]

Bean :

[]s

Criado 31 de março de 2011
Ultima resposta 4 de abr. de 2011
Respostas 2
Participantes 2