Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Meu init() não está funcionando no primefaces

Boa tarde,

Estou com um probleminha no meu uso do Primefaces. Por algum motivo meu xhtml não está disparando o init() do meu bean.

Segue o código das páginas:

CartaCancelamento.xhtml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <h:outputStylesheet library="css" name="file.css" />
    <title>Primeiros passos com JSF</title>
</h:head>
<h:body>

    <h1>Lista de Cartas de Cancelamento Sem Pendencias</h1>

    <p:dataTable value="#{cartaCancelamentoBean.listaCartasCancelamento}"
        var="cartas"
        emptyMessage="Nenhum protocolo de cancelamento localizado">

        <p:column style="text-align: center;" headerText="Protocolo">
            <h:outputText value="#{cartas.protocolo}" />
        </p:column>

        <p:column style="text-align: center;" headerText="Codinscricao">
            <h:outputText value="#{cartas.codinscricao}" />
        </p:column>

        <p:column style="text-align: center;" headerText="Proposta">
            <h:outputText value="#{cartas.codinscricaoplano}" />
        </p:column>

        <p:column style="text-align: center;" headerText="Data Envio">
            <h:outputText value="#{cartas.data_envio}">
                <f:convertDateTime pattern="dd/MM/yyyy"></f:convertDateTime>
            </h:outputText>
        </p:column>

        <p:column style="text-align: center;" headerText="Usuário">
            <h:outputText value="#{cartas.usuario}" />
        </p:column>

    </p:dataTable>
</h:body>
</html>

CartaCancelamentoBean

package br.com.sisprev.bean;

import java.sql.SQLException;
import java.util.List;

import javax.annotation.ManagedBean;
import javax.annotation.PostConstruct;
import javax.faces.bean.ViewScoped;

import br.com.sisprev.dao.CartaCancelamentoDAO;
import br.com.sisprev.model.CartaCancelamento;

@ManagedBean
@ViewScoped
public class CartaCancelamentoBean {

    private CartaCancelamento cartaCancelamento;
    private List<CartaCancelamento> listaCartasCancelamento;

    @PostConstruct
    private void Init() {

        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dando init() na CartaCancelamentoBean");

        try {

            CartaCancelamentoDAO dao = new CartaCancelamentoDAO();

            listaCartasCancelamento = dao.ListarCartasCriadas();

        } catch (SQLException e) {

            // TODO Auto-generated catch block
            e.printStackTrace();

        }

    }

    public CartaCancelamento getCartaCancelamento() {
        return cartaCancelamento;
    }

    public void setCartaCancelamento(CartaCancelamento cartaCancelamento) {
        this.cartaCancelamento = cartaCancelamento;
    }

    public List<CartaCancelamento> getListaCartasCancelamento() {
        return listaCartasCancelamento;
    }

    public void setListaCartasCancelamento(List<CartaCancelamento> listaCartasCancelamento) {
        this.listaCartasCancelamento = listaCartasCancelamento;
    }

}

Já tem um tempo que estou com problema com relação a isso, porém eu estava usando um arquivo muito maior. Resolvi criar um arquivo menor pra entender o que está acontecendo para depois aplicar a solução no arquivo maior.

1 resposta
solução!

Nesse caso,

Eu mudei a anotação pra @SessionScoped e usei também @Named, tirei as outras duas anteriores. Implementei Serializable e funcionou.

Agora vou tentar desvendar o código gigante, porque lá não funcionou mesmo com as mudanças kkk