在我的jsf页面中找不到任何记录



我正试图从我的数据库中检索数据,它实际上适用于另一个表,但对于这个表,日志文件中只找到了没有任何错误消息的记录。这是我的代码:

                        @ManagedBean
                  @SessionScoped
     public class AnnonceBean implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private List<SelectItem> anonItems;
private DataModel annonces;
private Annonce newAnnonce = new Annonce();
private Annonce editAnnonce;
private DaoAnnonce aDao = new DaoAnnonce();
public List<SelectItem> getAnonItems() {
    if (anonItems == null) {
        anonItems = new ArrayList<SelectItem>();
        List<Annonce> annList = aDao.selectAll();
        for (Annonce an : annList) {
            anonItems.add(new SelectItem((Annonce) an, ((Annonce) an)
                    .getTitre()));
            anonItems.add(new SelectItem((Annonce) an, ((Annonce) an)
                    .getContenu()));
            anonItems.add(new SelectItem((Annonce) an, ((Annonce) an)
                    .getProfesseur().getPrenom()));
        }
    }
    return anonItems;
}
public AnnonceBean() {
    if (annonces == null) {
        annonces = new ListDataModel();
        annonces.setWrappedData(aDao.selectAll());
    }
}
public String creer() {
    return "add";
}
public String create() {
    aDao.ajouter(newAnnonce);
    newAnnonce = new Annonce();
    annonces.setWrappedData(aDao.selectAll());
    FacesMessage msg = new FacesMessage("Ajout effectué avec succés");
    FacesContext.getCurrentInstance().addMessage(null, msg);
    return "list";
}
public String deleteGroupe() {
    Annonce a = (Annonce) annonces.getRowData();
    aDao.supprimer(a);
    FacesMessage msg = new FacesMessage("Suppression effectué avec succés");
    FacesContext.getCurrentInstance().addMessage(null, msg);
    return null;
}
public String editAnnonce() {
    editAnnonce=(Annonce)annonces.getRowData();
    return "edit";
}
public String updateAnnonce(){
    aDao.modifier(editAnnonce);
    annonces.setWrappedData(aDao.selectAll());
    FacesMessage msg = new FacesMessage("Modification effectué avec succés");
    FacesContext.getCurrentInstance().addMessage(null, msg);
    return "list";
}

这是我的刀类代码

              public class DaoAnnonce {
private static final String JPA_UNIT_NAME="Portail";
private EntityManager entityManager;
protected EntityManager getEntityManager() {
    if (entityManager == null) {
        entityManager = Persistence.createEntityManagerFactory(
                JPA_UNIT_NAME).createEntityManager();
    }
    return entityManager;
}
 public   void ajouter(Annonce a)
    {
        EntityTransaction tx = getEntityManager().getTransaction();
        tx.begin();
        entityManager.persist(a);
        tx.commit();
    }
 public void modifier(Annonce a)
    {
        EntityTransaction tx = getEntityManager().getTransaction();
        tx.begin();
        entityManager.merge(a);
        tx.commit();
    }
 public  void supprimer(Annonce a)
    {

        EntityTransaction tx = getEntityManager().getTransaction();
        tx.begin();
        a=entityManager.merge(a); // important
        entityManager.remove(a);
        tx.commit();
    }
 public List<Annonce > selectAll() {
        List<Annonce > annonces =getEntityManager().createQuery("select a from Annonce  a").getResultList();
        return annonces;
    }

这是jsf代码

                    <p:tab title="Annonces">
            <p:dataTable var="annonce" value="#{annonceBean.annonces}"
                editable="true">
                <p:ajax event="rowEdit" listener="#{tableBean.onEdit}" />
                <p:ajax event="rowEditCancel" listener="#{tableBean.onCancel}" />
                <p:column headerText="Titre" style="width:30%">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{annonce.titre}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{annonce.titre}" style="width:100%" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Contenu" style="width:20%">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{annonce.contenu}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{annonce.contenu}" style="width:100%"
                                label="contenu" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Professeur" style="width:24%">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{annonce.prenom}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{annonce.prenom}" style="width:100%"
                                label="prenom" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
            </p:dataTable>
        </p:tab>

我正在研究eclipse,并为组件

使用素数面

在您的bean AnnonceBean中,没有名为getAnnonces()的方法,但有一个方法getAnonItems()返回一个List<SelectItem>,这可能正是您想要的。如果是这种情况,则#{annonceBean.annonces}应替换为#{annonceBean.anonItems}

最新更新