cs_enmaai
Messages postés22Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention14 juin 2011
-
16 mai 2011 à 20:04
cs_enmaai
Messages postés22Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention14 juin 2011
-
18 mai 2011 à 18:20
salut
voilà je veux faire l'ajout des données vers une base oracle à partir d'une page jsf
mais ça ne marche pas, quand j'introduis les données et je clique sur le bouton "envoyer" il s'affiche:
An Error Occurred:
javax.el.MethodNotFoundException: Method not found: InsertAction@1f6c1c1.insert()
voici le code:
ma page jsf:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>user</title>
</head>
</html>
</f:view>
---------------------------------------------
voici mon bean:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
con =DriverManager.getConnection(URL,USER, PASSWD);
System.out.println ("connexion base pfe etablie");
}
catch(Exception e)
{
System.out.println ("erreur: base introuvable");
}}
public void insert(String requete) throws SQLException{
Statement st = con.createStatement();
int val = 0;
try {
val = st.executeUpdate("insert user_details values('" + username + "','" + jobposition + "')");
} catch (SQLException ex) {
Logger.getLogger(InsertAction.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(val);
}
}
--------------------
le problème réside au niveau de la fonction insert() mais je ne sais pas comment la corriger
2) est-ce que je doit ajouter "commit" à la fin pour que l'insertion s'effectue réellement ç-à dire quand je consulte ma table oracle je peux trouver les données que j'ai insérées à partir de la page jsf
je vous remercie
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020372 17 mai 2011 à 10:56
Tans ta page jsp, tu fais appel à la fonction insert ; or, ta fonction insert ne possède pas les bons arguments : les fonctions appellées doivent retourner un String et ne doivent pas avoir de paramètres.
De plus, ta connexion n'est japais initialisée, tu n'as pas de constructeur sans paramètre.
cs_enmaai
Messages postés22Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention14 juin 2011 18 mai 2011 à 13:22
Merci Julien pour cette réponse
j'ai fait les modifications nécessaires au niveau de bean
mais je n'ai pas compris comment
"ajoute sur ton bouton un ajax="false" "
est-ce que je dois ajouter la balise
<f:ajax execute= "...."/> car cette fois quand je clique sur le bouton"envoyer" il s'affiche:
An Error Occurred:
viewId:/welcomeJSF.jsp - La vue /welcomeJSF.jsp na pas pu être restaurée.
voici mon bean:
-----------------------------------------------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020372 18 mai 2011 à 13:33
Je ne comprends pas pourquoi tu as une main dans ton managedBean et pourquoi rien n'est initialisé.
La fonction possède maintenant la bonne signature et les bons attributs (c'est à dire aucun) mais tu n'as toujours pas créé de constructeur, ce qui peut te posser des problèmes, initialise les valeurs de tes attributs avec les valeurs que tu veux avoir dans ton écran "".
Et essayes de respecter les conventions d'écriture de code java, tu seras plus facile à relire.
Pour ajax="false", je ne suis pas certain qu'il faille le mettre ici, je n'utilise jamais les composants html classiques et je mets toujours dans les balises de mes bouton ajax="false" comme ca <p:commandButton ajax="false"... Essaye avec et sans, on verra bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_enmaai
Messages postés22Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention14 juin 2011 18 mai 2011 à 14:14
Salut julien
je n'est pas compris est-ce que je doit enlever la fonction main
et pour la création de constructeur et l'initialisation des attribut
je doit mettre :
public InsertAction(){
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020372 18 mai 2011 à 14:18
Pour le constructeur, c'est ca, ca évite à tes objets d'être nuls.
La fonction main ne gène pas, mais elle ne sert à rien.
Quand le managedBean est créé, son constructeur avec aucun attribut est automatiquement appelé, il est donc intéressant d'initialiser tes attributs dans ce constructeur.
cs_enmaai
Messages postés22Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention14 juin 2011 18 mai 2011 à 15:55
aprés la modification du code un nouveau message d'erreur est apparu :
An Error Occurred:
java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at InsertAction.insert(InsertAction.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 32 more
je pense que c'est à cause de la fonction insert
pourriez vous m'aider s'il vous plait
je vous remercie