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 :

The method setVar(String) in the type DataTableTag is not applicable for the argument


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut The method setVar(String) in the type DataTableTag is not applicable for the argument
    Bonjour.
    je viens de commencer le deloppement J2EE avec eclise 3, tomcat - et JSF.
    J'ai pris le tutoriel de Olivier Schmitt. Le message indique un probleme de type que je n'arrive pas à resoudre. Voici le message renvoyé par la compilation


    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP:

    Une erreur s'est produite à la ligne: 6 dans le fichier jsp: /data-table.jsp
    The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)
    3: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
    4: <core:view>
    5: <html:form>
    6: <html:dataTable value="#{bank.customers}" var="customer" border="1">
    7: <html:column>
    8: <html:outputText value="#{customer.name}"/>
    9: </html:column>


    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:316)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:414)
    com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:455)
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:139)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    L'erreur est due a la variable var dans le fomulaire suivant:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ page contentType="text/html" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
    <core:view>
    	<html:form>
    		<html:dataTable value="#{bank.customers}" var="customer" border="1">
    			<html:column>
    			<html:outputText value="#{customer.name}"/>
    			</html:column>
    			<html:column>
    			<html:outputText value="#{customer.forname}"/>
    			</html:column>
    		</html:dataTable>
    	</html:form>
    </core:view>

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    bonjour,
    Essaies d'upgrader la version de Tomcat ... ou du moins tester sur une version plus récente, les 6.x serait le top ...

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Impossible de compiler la classe pour la JSP
    Citation Envoyé par djo.mos Voir le message
    bonjour,
    Essaies d'upgrader la version de Tomcat ... ou du moins tester sur une version plus récente, les 6.x serait le top ...
    Merci djo.mos.
    Mon environement est le suivant:
    eclipse europa,
    tomcat 6.0,
    JSF 1.2

    En fait je tente de mettre un objet de type list dans une variable de type string.

    customer est une liste de clients sur laquelle je doit boucler.

    je precise que l'auteur du tutoriel avait utilise JSF 1

  4. #4
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    Essaies de changer le nom de ta variable de datatable par unCustomer. Ensuite, donnes nous le code de ton back bean et de ta classe customer.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Impossible de compiler la page jsp
    Citation Envoyé par heid Voir le message
    Essaies de changer le nom de ta variable de datatable par unCustomer. Ensuite, donnes nous le code de ton back bean et de ta classe customer.
    J'ai fait les modifications mais le message d'erreur persiste.
    Voici les fichiers utilisés:

    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
     
    package com.facestut.mvc;
     
    import java.util.ArrayList;
    import java.util.List;
    import com.facestut.bean.Customer;
     
    public class Bank {
     
    private List<Customer> customers = new ArrayList<Customer>();
     
    public Bank() {
    	this.customers.add(new Customer("DURAND","Paul"));
    	this.customers.add(new Customer("DUDULE","Michel"));
    	this.customers.add(new Customer("MARTIN","Athur"));
    	this.customers.add(new Customer("RICARD","Paul"));
    	}
    public void setCustomers(List<Customer> customers){
    	this.customers = customers;
    	}
    public List<Customer> getCustomers(){
    		return this.customers;
    		}	
    }
     
     
     
    package com.facestut.bean;
    public class Customer {
    	private String name = "DURAND";
    	private String forname = "Paul";
     
    	public Customer(){
    	}
    	public Customer(String pName, String pForname){
    		this.name = pName;
    		this.forname = pForname;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getForname() {
    		return forname;
    	}
    	public void setForname(String forname) {
    		this.forname = forname;
    	}
    }
     
     
     
    <%@ page contentType="text/html" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
    <core:view>
    <html:form>
    	<html:dataTable value="#{bank.customers}" var="customer" border="1">
    		<html:column>
    		<html:outputText value="#{customer.name}"/></html:column>
    		<html:column>
    		<html:outputText value="#{customer.forname}"/></html:column>
    </html:dataTable>
    </html:form>
    </core:view>
    J'ai cherché pendant plus d'une semaine.
    Merci de bien vouloir répondre.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Ca ne serait pas juste une erreur de cache ou de redéploiement ou de je ne sais pas quoi ? Parce que je ne vois pas l'erreur dans le code là.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Impossible de compiler la classe pour la JSP
    Citation Envoyé par scanlan Voir le message
    Ca ne serait pas juste une erreur de cache ou de redéploiement ou de je ne sais pas quoi ? Parce que je ne vois pas l'erreur dans le code là.



    Supporte pas ça... Evidemment que les gens qui peuvent répondre vont le faire...
    Je viens de remarquer autre chose. A la place des tag du genre si je met eclipse ne les reconnait pas et Tomcat bloque tous les boutons du formulaire. Je pense maintenant aux plugin, peut être qu'il y'a incompatibilité.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Le "html" vient de là :
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>

    Donc si tu veux utiliser "h" comme préfixe, à la place de "html" (en général on voit "h", mais tu peux mettre ce que tu veux), il faut remplacer la ligne précédente par :
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

    Sinon effectivement le préfixe n'est reconnu ni par Eclipse, ni par JSF qui est incapable de trouver le composant associé. Et si tu regardes le code HTML généré, tu devrais voir les <h:form> apparaitre sans qu'ils aient été transformés en en <form>.

  9. #9
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Euh .. pour cette histoire de h et de html, un indice:

    Dans le haut de ta page, tu as cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Impossible de compiler la classe pour la JSP
    Merci j'ai testé en modifiant et c'est bien le préfixe qui est responsable.
    Par contre je ne trouve pas de solution pour le datatable.

  11. #11
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Salut
    J'ai moi aussi le meme probleme du dataTable!
    et l'erreur affiché et le suivant :



    Pouvez vous nous aider!

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut gunis
    Bonujour,

    J'ai le même problème que vous, est ce que vous arrivez à résoudre le problème? merci d'avance

    Une erreur s'est produite à la ligne: 15 dans le fichier jsp: /index.jsp
    The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)
    12: <h:outputText value="#{msgs.pageTitle}"/>
    13: <p>
    14: <h:form>
    15: <h:dataTable value="#{tableData.names}"
    16: var="name">
    17: <h:column>
    18: <h:outputText value="#{name.last}, "/>

  13. #13
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Proposition
    Citation Envoyé par gunis Voir le message
    Bonujour,

    J'ai le même problème que vous, est ce que vous arrivez à résoudre le problème? merci d'avance

    Une erreur s'est produite à la ligne: 15 dans le fichier jsp: /index.jsp
    The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)
    12: <h:outputText value="#{msgs.pageTitle}"/>
    13: <p>
    14: <h:form>
    15: <h:dataTable value="#{tableData.names}"
    16: var="name">
    17: <h:column>
    18: <h:outputText value="#{name.last}, "/>
    J'ai changé les jars de JSF et ça marche. Je crois que c'est un problème de version de JSF. Télécharger les nouveaux jars pour voir.
    Bonne chance.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    j'ai le meme probleme et j'ai la derniere version de jsf et toujours le meme probleme

  15. #15
    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
    vous utilisez quelle version de JSF?

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Points : 24
    Points
    24
    Par défaut Bonjour
    Citation Envoyé par lakhdharani Voir le message
    j'ai le meme probleme et j'ai la derniere version de jsf et toujours le meme probleme
    En faite il y a deux solution:
    Soit tu utlises la version jsf-1.2_07-b03-FCS avec le serveur web Appache Tomcat.
    Soit tu changes le serveur web tomcat et tu utilises le serveur web Glassfish.
    Les deux solution ont bien marché.

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2013, 12h44
  2. method write(String) in the type Writer is not applicable
    Par FATENMRABET dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/09/2013, 13h05
  3. Réponses: 1
    Dernier message: 29/09/2010, 16h33
  4. Réponses: 1
    Dernier message: 19/11/2008, 17h47
  5. Type mismatch / Item not found in the collection.
    Par broise dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/07/2008, 14h14

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