Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

JSF/EL et tableau java


Sujet :

JSF Java

  1. #1
    Membre habitué
    JSF/EL et tableau java
    Bonjour,

    J'utilise un tableau java à 2 dimensions contenant des objets UtiNote.
    L'objet UtiNote contient entre autre une variable 'type'.
    Dans une page XHTML, je cherche une EL me permettant d'afficher le 'type' d'un objet UtiNote en particulier (dans le tableau, celui en position 5/125)
    J'ai essayé le code suivant, mais j'obtiens un null pointer exception à l'exécution.

    Merci pour votre aide.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <h:outputText value="#{noteManagerBean.selectionnerNote(administrationPlanCompteM61ManagerBean.tableauNote[5][125].getType())}"/>


    Note : si j'ote '.getType()' il affiche bien la référence de l'objet.

  2. #2
    Membre chevronné
    Salut,
    peux-tu nous montrer le code des classes.

    Merci

  3. #3
    Membre habitué
    Bonjour,

    Voici mon code...

    L'entité :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @Entity
    @Table(name = "UtiNote")
    public class UtiNote implements Serializable {
     
        @ManyToOne
        @JoinColumn(name = "REFUTILISATEURFK", referencedColumnName = "IDPK", insertable = false, updatable = false, nullable = false)
        private RefUtilisateur refUtilisateur;
     
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int idPk;
        private int refUtilisateurFk;
        private String type;  // Type de note : P = Page ou T = Tableau
        private String page;
        private String tableau;
        private int ligne;
        private int colonne;
        private int positionX;
        private int positionY;
        private String couleur;
        private String texte;


    Lecture des UtiNote dans la bdd :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public List<UtiNote> rechercherListeNote(RefUtilisateur utilisateur) {
     
            Query jQuery = getEntityManager().createQuery("select x from UtiNote x where x.refUtilisateurFk = :uti");
     
            jQuery.setParameter("uti", utilisateur.getIdPk());
     
            try {
                return (List<UtiNote>) jQuery.getResultList();  <-- Résultat dans : List<UtiNote> listeUtiNote
            } catch (NoResultException e) {
            }
            return null;
        }


    Chargement du tableau :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    private UtiNote[][] tableauNote;


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    setTableauNote(new UtiNote[8][232]);
     
            for (int i = 0; i < getListeUtiNote().size(); i++) {
     
                if (getListeUtiNote().get(i).getPage().equals(getPageCourante()) && getListeUtiNote().get(i).getType().equalsIgnoreCase("T")) {
     
                    getTableauNote()[getListeUtiNote().get(i).getColonne()][getListeUtiNote().get(i).getLigne()] = getListeUtiNote().get(i);
                }
            }


    Le tableau est correctement chargé.

    Page XHTML :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <h:outputText value="#{noteManagerBean.tableauNote[5][125].getType())}"/>  <-- Null pointer exception


    Note : si j'ote '.getType()' il affiche bien la référence de l'objet.

  4. #4
    Membre chevronné
    salut,
    est ce que ceci est il dans une boucle ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <h:outputText value="#{noteManagerBean.tableauNote[5][125].getType())}"/>


    Eric

  5. #5
    Membre habitué
    Salut,

    Non pas dans une boucle.

  6. #6
    Membre habitué
    Il fallait écrire "type" et non "getType()".

    Erreur de débutant !!

    Merci pour ton aide jeffray03