IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

[PrimeFaces] selected object est toujours null


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Points : 29
    Points
    29
    Par défaut [PrimeFaces] selected object est toujours null
    Bonjour,

    j'ai un problème avec ma sélection dans ma datatable

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?xml version='1.0' encoding='UTF-8' ?>
     
        <h:form id="form_DTServiceProviders">
     
     
                <!-- DATATABLE SERVICE PROVIDER -->
                <p:dataTable id="dt_ServiceProviders" var="serviceProvider" 
                             value="#{serviceProvidersController.listServiceProviders}" 
                             rows="20" paginator="true" rowsPerPageTemplate="10,20,50,100"
                             emptyMessage="#{msg['dt.service.provider.empty']}" 
                             styleClass="datatable" tableStyle="width:auto">
     
                    <!-- COLUMN NAME -->
                    <p:column headerText="#{msg['dt.service.provider.header.name']}" 
                              sortBy="#{serviceProvider.name}" 
                              filterBy="#{serviceProvider.name}"
                              styleClass="cell title black" >
                        <h:outputText value="#{serviceProvider.name}" />
                    </p:column>  
     
                    <!-- COLUMN VIEW -->
                    <p:column styleClass="noborder nobackground checkboxcell">
     
                        <p:commandButton update=":formContent:form_DTServiceProviders:dlg_ViewServiceProvider" 
                                         oncomplete="PF('dlg_ViewServiceProvider').show()" 
                                         icon="ui-icon-search" 
                                         title="View">
                            <f:setPropertyActionListener value="#{serviceProvider}" 
                                                         target="#{serviceProvidersController.selectedServiceProvider}" />
                        </p:commandButton>
     
                    </p:column>
     
                </p:dataTable>
            </div>
     
            <!-- DIALOG VIEW -->
            <p:dialog header="#{msg['dlg.service.provider.view.header']}"
                      widgetVar="dlg_ViewServiceProvider" 
                      dynamic="true" resizable="false" closable="false" 
                      modal="true" appendTo="@(body)">
                <p:outputPanel id="dlg_ViewServiceProvider" >
                    <p:panelGrid columns="2" rendered="#{not empty serviceProvidersController.selectedServiceProvider}">
                        <h:outputText value="#{msg['dlg.service.provider.view.name']}" />
                        <h:outputText value="#{serviceProvidersController.selectedServiceProvider.name}" />
                        <h:outputText value="#{msg['dlg.service.provider.view.notificationUrl']}" />
                        <h:outputText value="#{serviceProvidersController.selectedServiceProvider.notificationUrl}" />
                        <h:outputText value="#{msg['dlg.service.provider.view.ip']}" />
                        <h:outputText value="#{serviceProvidersController.selectedServiceProvider.ip}" />
                    </p:panelGrid>
                    <div align="right">
                        <p:commandButton icon="ui-icon-circle-close" value="Cancel"
                                         onclick="PF('dlg_ViewServiceProvider').hide()"/>
                        <p:commandButton value="#{msg['dlg.service.provider.btn.ok']}" 
                                         onclick="PF('dlg_ViewServiceProvider').hide()"  
                                         icon="ui-icon-circle-check"/> 
                    </div>
                </p:outputPanel>
            </p:dialog>  
     
        </h:form>
    </ui:composition>

    mon controller :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    @Controller
    @ManagedBean
    @ViewScoped
    public class ServiceProvidersController {
     
     
         * List ServiceProviders
         */
        private List<ServiceProvider> listServiceProviders;
        /**
         * Selected ServiceProvider
         */
        private ServiceProvider selectedServiceProvider;
     
        /**
         * Constructor by default
         */
        public ServiceProvidersController() {
        }
     
        /**
         * Method PostContruct
         */
        @PostConstruct
        public void init() {
            selectedServiceProvider = new ServiceProvider();
            listServiceProviders = new ArrayList<ServiceProvider>();
            listServiceProviders = nsmAdminService.findServiceProviders();
        }
     
     
        public List<ServiceProvider> getListServiceProviders() {
            return listServiceProviders;
        }
     
        public void setListServiceProviders(List<ServiceProvider> listServiceProviders) {
            this.listServiceProviders = listServiceProviders;
        }
     
        public ServiceProvider getSelectedServiceProvider() {
            System.out.println("" + selectedServiceProvider.getName());
            return selectedServiceProvider;
        }
     
        public void setSelectedServiceProvider(ServiceProvider selectedServiceProvider) {
            this.selectedServiceProvider = selectedServiceProvider;
        }
     
        }


    La sélection est toujours null :'(

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Points : 29
    Points
    29
    Par défaut
    Personne a une solution ??

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:p="http://primefaces.org/ui"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:ui="http://java.sun.com/jsf/facelets">
     
        <h:form id="form_DTServiceProviders">
     
            <p:dataTable id="dt_ServiceProviders" var="serviceProvider" 
                         value="#{serviceProvidersController.listServiceProviders}" 
                         rows="20" paginator="true" rowsPerPageTemplate="10,20,50,100"
                         emptyMessage="#{msg['dt.service.provider.empty']}" 
                         styleClass="datatable border" tableStyle="width:auto"
                         selection="#{serviceProvidersController.selectedServiceProvider}" 
                         rowKey="#{serviceProvider.name}" >
     
                <p:column headerText="#{msg['dt.service.provider.header.name']}" 
                          sortBy="#{serviceProvider.name}" 
                          filterBy="#{serviceProvider.name}"
                          styleClass="cell title black bold" >
                    <h:outputText value="#{serviceProvider.name}" />
                </p:column>  
     
                <p:column headerText="#{msg['dt.service.provider.header.ip']}" 
                          styleClass="cell align_center text black" >
                    <h:outputText value="#{serviceProvider.ip}" />
                </p:column>  
     
                <p:column headerText="#{msg['dt.service.provider.header.notificationUrl']}"
                          styleClass="cell align_center text black" >
                    <h:outputText value="#{serviceProvider.notificationUrl}" />
                </p:column> 
     
                <p:column styleClass="noborder nobackground checkboxcell">
                    <p:commandButton id="viewButton" process="@this" partialSubmit="true" 
                                     update=":leftContent:form_DTServiceProviders:pg_ViewServiceProviderId" 
                                     oncomplete="PF('dlg_ViewServiceProvider').show()"
                                     icon="ui-icon-search" 
                                     title="View">
                        <f:setPropertyActionListener value="#{serviceProvider}" 
                                                     target="#{serviceProvidersController.selectedServiceProvider}" />
     
                    </p:commandButton>
                </p:column> 
            </p:dataTable>
     
     
            <!-- DIALOG VIEW -->
            <p:dialog header="#{msg['dlg.service.provider.view.header']}"
                      widgetVar="dlg_ViewServiceProvider" 
                      dynamic="true" resizable="false" closable="false" 
                      modal="true" appendTo="@(body)">
     
                <p:panelGrid id="pg_ViewServiceProviderId" columns="2" rendered="#{not empty serviceProvidersController.selectedServiceProvider}">
                    <h:outputText value="#{msg['dlg.service.provider.view.name']}" />
                    <h:outputText value="#{serviceProvidersController.selectedServiceProvider.name}" />
                    <h:outputText value="#{msg['dlg.service.provider.view.notificationUrl']}" />
                    <h:outputText value="#{serviceProvidersController.selectedServiceProvider.notificationUrl}" />
                    <h:outputText value="#{msg['dlg.service.provider.view.ip']}" />
                    <h:outputText value="#{serviceProvidersController.selectedServiceProvider.ip}" />
                </p:panelGrid>
                <div align="right">
                    <p:commandButton icon="ui-icon-circle-close" value="Cancel"
                                     onclick="PF('dlg_ViewServiceProvider').hide()"/>
                    <p:commandButton value="#{msg['dlg.service.provider.btn.ok']}" 
                                     onclick="PF('dlg_ViewServiceProvider').hide()"  
                                     icon="ui-icon-circle-check"/> 
                </div>
            </p:dialog> 
        </h:form>
    </ui:composition>

  3. #3
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Citation Envoyé par chacalpuant1987 Voir le message
    Personne a une solution ??
    Bonjour,

    Je n'ai pas une solution, juste des idées :
    - quand on utilise le filtre d'une dataTable, il faut déclarer un attribut "filteredValue" qui doit pointer vers une Collection initialisée capable de stocker les objets filtrés;
    - êtes vous sûr que c'est l'objet sélectionné qui est nul ? Peut-être que juste son nom est nul.

    Montrez-moi vos messages d'erreur, je vous montrerai les miens, à partir de votre code modifié.
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je pense que l'attribut update na reçoit pas la bonne valeur, essai avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     update=":leftContent:form_DTServiceProviders:pg_ViewServiceProviderId"
    Sachant que cet objet doit être initialisé dans ton Bean manager.
    Si ça marche pas encore je te conseille de mettre le tableau dans un form et le dialogue dans un form.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p:commandButton id="viewButton" process="@this" partialSubmit="true" ...>
    Tu fais une requête partielle et tu n'envoies que le bouton... pas étonnant qu'il n'ait rien dans selected
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/04/2012, 15h42
  2. INotifyDataErrorInfo, ErrorsChanged est toujours null
    Par marquisvincent dans le forum Silverlight
    Réponses: 0
    Dernier message: 02/11/2011, 17h29
  3. Mon object est toujours null
    Par rahmoucha dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/12/2010, 14h25
  4. [AJAX] mon retour XML est toujours NULL
    Par beegees dans le forum AJAX
    Réponses: 1
    Dernier message: 14/04/2009, 07h22
  5. Select sur un object est interdit!
    Par adilou1981 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/10/2006, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo