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 :

rich:ListShuttle Parameter targetClass is null


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut rich:ListShuttle Parameter targetClass is null
    Bonjour,

    j'essaye actuellement d'utiliser un listShuttle. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <rich:listShuttle sourceValue="#{listGroupes}" targetCaptionLabel="Groupes choisis" sourceCaptionLabel="Groupes disponibles"
    targetValue="#{searchBean.groupesChoisis}"  var="groupe"
    listHeight="300" listWidth="300" >
              <h:column>
                        <h:outputText value="#{groupe.nom}" />
              </h:column>
    </rich:listShuttle>
    Le problème est que j'ai le message d'erreur suivant :

    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
    20 juil. 2009 11:33:53 com.sun.facelets.FaceletViewHandler handleRenderException
    GRAVE: Error Rendering View[*****/***/groupe-view.xhtml]
    java.lang.NullPointerException: Argument Error: Parameter targetClass is null
    	at com.sun.faces.application.ApplicationImpl.createConverter(ApplicationImpl.java:761)
    	at org.richfaces.component.UIOrderingBaseComponent.getConverterForType(UIOrderingBaseComponent.java:534)
    	at org.richfaces.component.UIOrderingBaseComponent.getConverterForValue(UIOrderingBaseComponent.java:559)
    	at org.richfaces.renderkit.OrderingComponentRendererBase.getConverter(OrderingComponentRendererBase.java:574)
    	at org.richfaces.renderkit.ListShuttleRendererBase.encodeRows(ListShuttleRendererBase.java:116)
    	at org.richfaces.renderkit.html.ListShuttleRenderer.doEncodeChildren(ListShuttleRenderer.java:267)
    	at org.richfaces.renderkit.html.ListShuttleRenderer.doEncodeChildren(ListShuttleRenderer.java:257)
    	at org.richfaces.renderkit.ListShuttleRendererBase.encodeChildren(ListShuttleRendererBase.java:244)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
    	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
    	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
    	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220)
    	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215)
    	at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
    	at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)...
    Est ce que quelqu'un saurait ce que ca veut dire et surtout pourquoi ai-je cette erreur alors que mon code est equivalent à ce que j'ai vu sur ce même forum

    Cela viendrait il du fait que je n'ai pas mis de converter??? (d'ailleurs malgré la faq et les posts à ce sujet.. j'ai pas bien compris le concept )

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    la liste target est null??

    tu es obligé de toute façon d'ajouter un converter pour ta liste.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    En fait j'ai trouvé en fouillant un peu sur le net...

    il faut que la variable listGroupes soit dans un bean.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <rich:listShuttle sourceValue="#{searchGroupeBean.allGroupeList}" 
    targetCaptionLabel="Groupes choisis" sourceCaptionLabel="Groupes disponibles" 
    targetValue="#{searchGroupeBean.selectedGroupeList}"  var="groupe"
    listHeight="300" listWidth="300" >
     
              <h:column>
                        <h:outputText value="#{groupe.nom}" />
              </h:column>
    </rich:listShuttle>
    Et là je n'ai plus d'erreur... maintenant

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Je continue dans avec mon listShuttle...

    Maintenant j'ai un autre problème...

    Comme dit précédemment j'arrive bien à faire mon listShuttle, cependant, j'ai un souci avec le converter dans la partie getAsObject(FacesContext ctx, UIComponent component, String value).

    En effet cette méthode à pour but de reconstruire l'objet à partir du "value".

    Comme j'utilise spring je passe par les annotations...

    j'ai donc :
    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
     
    public class ListConverter implements Converter
    {
     
    @Autowired 
    private ObjectService objectService;
     
    public Object getAsObject(FacesContext ctx, UIComponent component, String value)
    {
     
    MyObject monObjet = objectService.getObjectByID(Long.parseLong(value));
     
    return monObjet;
    }
     
    public Object getAsString(FacesContext ctx, UIComponent component, Object value)
    {
     
    MyObject monObjet = (MyObject)value;
    return monObject.getId.toString();
    }
    Le problème est que comme je passe par un composant richfaces (listshuttle) c'est lui qui instanci ma classe converter et non spring donc l'autowired ne fonctionne pas et je me retrouve avec un null dans "objectService" .

    Que dois je faire pour que l'autowired fonctionne et que ma classe ObjectService soit appelée???

Discussions similaires

  1. Utiliser une liste dans rich:listShuttle
    Par lionceau dans le forum JSF
    Réponses: 3
    Dernier message: 30/07/2013, 12h03
  2. rich:listShuttle et problème de validation
    Par romaintaz dans le forum JSF
    Réponses: 16
    Dernier message: 22/12/2010, 12h02
  3. Désactiver la multiselection dans un rich:listShuttle
    Par rdeoliveira dans le forum JSF
    Réponses: 3
    Dernier message: 07/05/2010, 11h44
  4. Récuperation des valeurs d'un rich:listShuttle
    Par amariasoft dans le forum JSF
    Réponses: 12
    Dernier message: 14/05/2009, 14h14
  5. [Request][Parameter] valeur null
    Par nikoo_27 dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/02/2007, 16h09

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