Cadastro Web (JSF2)

Bom dia a todos,

Preciso muito de um help, e para isso tentarei descrever detalhadamente a necessidade.

Tenho uma tela de cadastro, a qual possui diversos campos, alguns desses serão representados por ‘h:selectOneMenu’, esses serão carregados com base numa tabela do banco de dados, bom, até aqui nada de diferente!

No intuito de agilizar, eu gostaria de fazer assim:
"Quando o usuário estiver nessa tela preenchendo os dados, e notar que nesse ‘h:selectOneMenu’ não tem a informação desejada, ao invés de ter que sair dessa tela, e ter que ir na outra apenas para cadastrar tal informação, eu quero colocar um ‘commandbutton’ ao lado desses ‘h:selectOneMenu’ com a finalidade de cadastrar essa informação, tipo exibir uma tela modal e após a conclusão, fechar essa tela e atualizar os dados do ‘h:selectOneMenu’ "

PS: No momento estou fazendo tudo apenas com JSF2, mas no projeto há as bibliotecas do primefaces.

Desde já agradeço.

Bom dia.

No primefaces o componente se chama dialog.
No exemplo abaixo temos um dialog com o widgetVar (que é usado para chamá-lo) com nome “cadastroDlg”. Para abri-lo basta você usar onclick=“cadastroDlg.show()”.
Esse exemplo abaixo é parte de uma página do meu estágio supervisionado do final do ano passado. Vê se funciona no teu caso:

<h:form id="formNovoModulo">
    <p:panel id="panelNovoModulo">
        <h:selectOneMenu value="#{novoModuloBean.idCurso}" style="margin-right: 20px" id="selectCurso">
            <f:selectItems value="#{novoModuloBean.cursos}" 
                                  var="item" itemLabel="#{item.nome}" itemValue="#{item.idCurso}"/>                              
         </h:selectOneMenu>

      <p:commandButton image="imagemAdd" action="#{novoModuloBean.novoCurso}" onclick="cadastroDlg.show()" update="formCadastro"/>
   </panel>
</h:form>

<p:dialog widgetVar="cadastroDlg" 
                          header="Cadastro de Curso">
                    
                    <h:form id="formCadastro" style="font-size: 12px;">   
                            <h:panelGrid columns="2">
                                <h:outputText value="Nome:"/>
                                <h:inputText id="nome" value="#{novoModuloBean.curso.nome}"/>
                                <h:outputText value="Descrição: "/>
                                <h:inputTextarea id="descricao" value="#{novoModuloBean.curso.descricao}"/>


                                <h:outputText value=""/>
                                <p:commandButton value="Salvar" image="imagemSalvar" oncomplete="cadastroDlg.hide()"
                                                 action="#{novoModuloBean.salvarCurso}" 
                                                 update="formNovoModulo, formNovoModulo:panelNovoModulo, formNovoModulo:selectCurso" 
                                                 ajax="false"></p:commandButton>
                            </h:panelGrid>
                        </h:form>
</p:dialog>

Bom dia rafaelvascon,

Estou seguindo sua idéia, e é exatamente isso que preciso.
Sem querer abusar muito, seria possível postar o código do managedbean novoModuloBean

:idea: