Bonjour a tous,
Voila, j'ai repris l'exemple telecharger sur le site...
Voila les sources:
Bean:
la page.
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 import java.io.IOException; import org.apache.myfaces.custom.fileupload.UploadedFile; import javax.faces.context.FacesContext; /** * @author Manfred Geiler (latest modification by $Author: grantsmith $) * @version $Revision: 472610 $ $Date: 2006-11-08 14:46:34 -0500 (Wed, 08 Nov 2006) $ */ public class FileUploadForm { private UploadedFile _upFile; private String _name = ""; public UploadedFile getUpFile() { return _upFile; } public void setUpFile(UploadedFile upFile) { _upFile = upFile; } public String getName() { return _name; } public void setName(String name) { _name = name; } public String upload() throws IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); facesContext.getExternalContext().getApplicationMap().put("fileupload_bytes", _upFile.getBytes()); facesContext.getExternalContext().getApplicationMap().put("fileupload_type", _upFile.getContentType()); facesContext.getExternalContext().getApplicationMap().put("fileupload_name", _upFile.getName()); return "ok"; } public boolean isUploaded() { FacesContext facesContext = FacesContext.getCurrentInstance(); return facesContext.getExternalContext().getApplicationMap().get("fileupload_bytes")!=null; } }
resultat.
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" > <body> <f:view> <h:form id="form1"> <h:outputText value=""/> <h:outputText value="Fichier"/> <t:inputFileUpload id="fileupload" accept="image/*" value="#{fileUploadForm.upFile}" storage="file" styleClass="fileUploadInput" required="true" maxlength="200000"/> <h:message for="fileupload" showDetail="true" /> <f:verbatim><br/></f:verbatim> <h:outputText value="Name"/> <h:inputText value="#{fileUploadForm.name}"/> <h:commandButton value="envoie" action="#{fileUploadForm.upload}" /> </h:form> </f:view> </body> </html>
En faite, si j'ai bien compris l'objet upFile est null alors que _name est bien mise a jour....
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 Error calling action method of component with id form1:_id9 Caused by: java.lang.NullPointerException - /envoie.jsp @25,81 action="#{fileUploadForm.upload}": java.lang.NullPointerException javax.faces.FacesException: Error calling action method of component with id form1:_id9 at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72) at javax.faces.component.UICommand.broadcast(UICommand.java:141) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:115) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:191) at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:105) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:80) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:143) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) at java.lang.Thread.run(Unknown Source) Caused by: javax.faces.el.EvaluationException: /envoie.jsp @25,81 action="#{fileUploadForm.upload}": java.lang.NullPointerException at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61) ... 22 more Caused by: java.lang.NullPointerException at util.dataObjet.user.FileUploadForm.upload(FileUploadForm.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69) ... 23 more
Je ne trouve pas de piste... surtout que dans l'exemple ça fonctionne.
Merci d'avance.
Partager