GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

ERRO na renderização da view JSF

java
front-end
primefaces
jsf
Tags: #<Tag:0x00007f9723fafb60> #<Tag:0x00007f9723fafa20> #<Tag:0x00007f9723faf840> #<Tag:0x00007f9723faf660>

#1

Boa tarde!
alguem pode me ajudar ao escolher o Estado e Municipio na minha aplicação salvo eles no banco, porem quando dou F5 na pagina o municipio não esta aparecendo na view mesmo estando salvo na tabela do banco. abaixo meu XHTML.

                                <p:outputLabel value="UF Licenciamento:" for="itUfLicenciamento"/>
                            <p:selectOneMenu id="itUfLicenciamento"
                                             value="#{operacaoFinanciadaBean.operacaoFinanciadaSelected.proposta.veiculo.ufLicenciamento}"
                                             style="width:80%" >
                                <f:selectItem noSelectionOption="true"/>
                                <f:selectItems value="#{operacaoFinanciadaBean.listaEstados}"/>
                                <p:ajax event="itemSelect"
                                        update="itMunicipioLicenciamento"
                                        process="@form"
                                        oncomplete="PF('statusDialog').hide()"
                                        listener="#{operacaoFinanciadaBean.buscaListaMunicipio}"/>
                            </p:selectOneMenu>
                        </div>
                        <div class="ui-g-3">

                            <p:outputLabel value="Município Licenciamento:" for="itMunicipioLicenciamento"/>
                            <p:selectOneMenu id="itMunicipioLicenciamento"
                                             value="#{operacaoFinanciadaBean.operacaoFinanciadaSelected.proposta.veiculo.municipioLicenciamento}"
                                             style="width:80%">
                                <f:selectItem itemLabel="" itemValue=""/>
                                <f:selectItems value="#{operacaoFinanciadaBean.listaMunicipio}"/>
                        </p:selectOneMenu>
                        </div>
                    </div>



#2

Qual o escopo do bean?
Ao dar F5, você selecionou o UF Licenciamento?


#3

AO DAR F5 EU NAO SELECIONEI O UF NOVAMENTE, SE EU SELECIONAR AS CIDADES APARECEM… EU QUERO QUE A OPÇÃO FIQUE SALVA POR EXEMPLO: ESCOLHI UF:GO CIDADE:GOIÂNIA, E SALVEI, APOS DAR F5, QUERO QUE CONTINUE FIXADA LA AS OPÇÕES UF:GO e MUNICIPIO:GOIÂNIA


#4

BEAN;

public void buscaListaUf ()
{
    listaEstados = new ArrayList<>();
    List<Estado> ufEstado = operacaoFinanciadaHome.buscaEstadosSafra();
    for (Estado siglaEstados : ufEstado)
    {
        listaEstados.add(new SelectItem(siglaEstados.getSigla(), siglaEstados.getSigla()));
    }
}

public void buscaListaMunicipio ()
{
    listaMunicipio = new ArrayList<>();
    Estado estado = operacaoFinanciadaHome.buscaEstado(operacaoFinanciadaSelected.getProposta().getVeiculo()
            .getUfLicenciamento());
    List<Municipio> municipios = operacaoFinanciadaHome.buscaMunicipiosSafra(estado);
    for (Municipio municipio : municipios)
    {
        listaMunicipio.add(new SelectItem(municipio.getNome(), municipio.getNome()));
    }

}

#5

Qual o escopo do bean?
Para funcionar tem que ser SessionScoped, ApplicationScoped ou ConversationScoped

Se não for nenhum desses, o seu UF estará resetando


#6

A anotação em cima da classe ta como?

viewscoped?


#7

SIM

@ViewScoped

@ManagedBean(name = “operacaoFinanciadaBean”)
public class OperacaoFinanciadaBean implements Serializable
{


#8

Troca para SessionScoped então

Um Bean ViewScoped sera destruido (nulo) quando acontecer um redirecionamento, no seu caso o F5

Ao utilizar SessionScoped, o bean se destruirá quando a sessão encerrar, não importando o F5

Aqui tem um ótimo conteúdo de JSF e gratuito


#9

Exatamente isso, da uma olhada em como funciona os escopos isso é extremamente importante, mas dando uma resumida:

View: a informação vive enquanto você não troca ou atualiza de página.
Request: a informação vive por uma requisição.
Conversation: a informação vive por um determinado período de tempo que pode ser controlado via código quando ela inicia e termina.
Session: a informação vive durante toda a sessão do usuário.
Application: a informação vive durante toda a vida da aplicação no servidor.