Dúvida nwb! Managed Bean em request scope

Boa noite caros, estou aprendendo a desenvolver apps utilizando jsf e gostaria de tirar uma dúvida em relação ao comportamento de managed beans em escopo de request. Tenho uma JSP com um combobox que preencho com objetos do tipo Usuario, e dentro do método get desta propriedade no managed bean (getUsuarioComboList), realizo uma consulta no banco e preencho uma list de selectItems com o resultado. Olhando a saída no console, vi que ao clicar no botão pesquisar e chamar o método executarPesquisa dentro do mesmo managed bean(que retorna para mesma jsp), o método getUsuarioComboList foi chamado 3 vezes, consequentemente executando o select no banco 3x, para evitar isso declarei uma variável de instância para guardar o resultado da pesquisa e passei a verificar se a mesma estaria nula para então chamar a consulta ao banco. Essas 3 chamadas estariam relacionadas as diversas fases dentro do ciclo de vida da requisição???
[]'s.

Não consegui, compreender corretamente o seu problema, mas se já tentou colocar @ViewScope no lugar de @RequestScope?

Tenho os seguintes elementos na JSP:

                    <h:selectOneMenu value="#{manterUsuarioMBean.usuarioPojo.id}" >
                        <f:selectItems value="#{manterUsuarioMBean.usuarioComboList}"/>
                    </h:selectOneMenu>

                    <h:commandButton
                        action="#{manterUsuarioMBean.pesquisarUsuarios}"
                        value="pesquisar" />

e no managed bean:

    public List<SelectItem> getUsuarioComboList() {
        if (usuarioList == null) {
            usuarioList = (List<Usuario>) ejbUsuario.getDaoInstance().findByFilter(new Usuario(), filterInstance);
        }

        List<SelectItem> items = new ArrayList<SelectItem>();
        for (Usuario usuario : usuarioList) {
            items.add(new SelectItem(usuario.getId(), usuario.getNome()));
        }

        return items;
    }

    public String pesquisarUsuarios() {
        System.out.println("public String pesquisarUsuarios()");

        if (isFormularioValido()) {
            getFilterInstance().addRestriction("nome", ((Usuario) entityInView).getNome(), FilterOperator.OPERATOR_LIKE);
            this.table = new ListDataModel((List<Usuario>) ejbUsuario.getDaoInstance().findByFilter(entityInView,
                    getFilterInstance()));

            return null;
        } else {
            addFacesMessage("Ao menos um campo deve ser preenchido", FacesMessage.SEVERITY_WARN);
        }

        return null;
    }

A pergunta é: porque o método getUsuarioComboList, que retorna a lista do componente selectOneMenu, é invocado 3 vezes quando eu clico no botão pesquisar (que retorna para a mesma jsp) :idea: Adicionei o IF para evitar as 3 chamadas ao banco de dados :idea: Estou lendo http://www.ibm.com/developerworks/library/j-jsf2/ tentando entender melhor o ciclo… enquanto ao mesmo tempo tento assistir a alemanha x inglaterra :smiley: