Formulário - esconder campos?

Estou desenvolvendo uma aplicação em Java, e gostaria de fazer o seguinte:

O formulário cadastro de empresa possui campos que são obrigatórios o preenchimento, e outros de “endereço” que não são, então gostaria de colocar um button “Endereço” que quando o usuário clicar neste button, ele mostre os outros campos para o preenchimento.

Algo parecido com a tag em anexo, porém não há validação de modelo = ‘A1’, preciso que aparece os campos simplesmente clicando em um button.

                                 <div class="form-group">
                                    <h:outputLabel value="Modelo : * " 
                                                   for="modelo"
                                                   styleClass="control-label col-sm-4"/>
                                    <div class="col-sm-6">
                                        <h:selectOneMenu value="#{certificadoController.certificado.modelo}">
                                        <f:selectItem itemLabel="---" itemValue="---"/>
                                        <f:selectItem itemLabel="A1" itemValue="A1"/>
                                        <f:selectItem itemLabel="A3" itemValue="A3"/>
                                         <f:ajax render="@form" />
                                        </h:selectOneMenu>    
                                    </div> 
                                </div>  
                                
                                
                                <h:panelGroup rendered="#{certificadoController.certificado.modelo == 'A1'}">
                                 <div class="form-group">
                                    <h:outputLabel value="Backup A1 :" 
                                                   for="upload"
                                                   styleClass="control-label col-sm-4"/>
                                    <div class="col-sm-6">
                                <p:fileUpload label="Backup"
                                id="upload" 
                                fileUploadListener="#{certificadoController.certificado.uploadA1()}" 
                                mode="simple" skinSimple="true"
                                allowTypes="/(\.|\/)(pfx)$/" 
                                invalidFileMessage="São permitidas somente arquivos do tipo (.pfx)" 
                                sizeLimit="30720" 
                                invalidSizeMessage="O tamanho máximo permitido é de 30KB."
                                fileLimit="1" 
                                fileLimitMessage="Só é possível escolher 1 arquivo por vez."
                                auto="true"
                                onstart="console.log('Iniciando envio de arquivo')"
                                onerror="console.log('Erro na requisição de envio')"
                                oncomplete="console.log('Envio concluído')" 
                                uploadLabel="Enviar" cancelLabel="Cancelar"/>
                                 </div> 
                                </div>  
                                 </h:panelGroup>

Como poderia fazer algo parecido aqui ?

                                <div class="form-group">
                                <h:outputLabel value="vis_end" 
                                                   for="end"
                                                   styleClass="control-label col-sm-4"/>
                               <button type="button" class="btn btn-warning">Endereço                                
                               </button>  
                               </div> 
                               
                               <h:panelGroup>
                               <div class="panel panel-info">
                               <div class="panel-heading">
                               <h3 class="panel-title">Endereço (Não Obrigatório)</h3>
                               </div>
                               <div class="panel-body">
                      
                                <div class="form-group">
                                    <h:outputLabel value="CEP:" 
                                                   for="cep"
                                                   styleClass="control-label col-sm-4"/>
                                    <div class="col-sm-2">
                                        <p:inputMask id="cep"
                                                     style="width: 100px;"
                                                     mask="99.999-999"
                                                     value="#{empresaController.empresa.cep}"
                                                     title="CEP"
                                                     styleClass="form-control"/>    
                                    </div> 
                                </div>
                               
                                 <div class="form-group">
                                    <h:outputLabel value="Endereço:" 
                                                   for="endereco"
                                                   styleClass="control-label col-sm-4"/>
                                    <div class="col-sm-2">
                                        <h:inputText id="endereco"
                                                     style="width: 350px;"
                                                     value="#{empresaController.empresa.endereco}"
                                                     title="Endereço"
                                                     styleClass="form-control"/>    
                                    </div> 
                                </div>
                              </h:panelGroup>