Bonjour,
je développe une petite application web en Java EE, dans celle-ci je dois pouvoir importer une liste d'étudiants (en fichier excel).
Cependant je suis confronté à un soucis que je n'avais pas avant :/
Je m'explique, le fichier choisit (Part) dans l'inputFile est null lorsque que mon bouton charger fichier est un mais si celui-ci est un le fichier (Part) n'est plus null mais le problème est que lorsque j'utilise un commandButton mon Modal apparaît et disparaît aussi vite :/

Voici l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
serverError: class javax.faces.el.EvaluationException
Voici mon xHtml :
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
<h:form enctype="multipart/form-data">
				<h:inputFile value="#{etudiantController.file}" id="file"
					styleClass="btn btn-primary" style="width:30%" required="true" 
					requiredMessage="Veuillez sélectionner un fichier" />
						<b:messages for="file" />
					<hr/>			
 
 
				<b:button  tooltip="Charger le fichier choisit" tooltip-position="auto"
					id="submit" onclick="$('.modalDialog2').modal();"
					value="Charger"
					styleClass="btn btn-success" ajax="false" style="width:30%" />
 
				<b:growl id="growlMsg" globalOnly="true" placementFrom="bottom" 
				         show-detail="true" show-summary="false" allowDismiss="true"
				         delay="10000" escape="true" />
 
			</h:form>
 
		</b:jumbotron>
 
	</div>
 
<h:form id="myFormID2">
  <b:modal id="dia2" title="Chargement liste étudiant" styleClass="modalDialog2"
           closable="false"  close-on-escape="false" backdrop="false">
 
		<p>Attention cette action supprimera tout les étudiants !</p>
 
					<br />
 
    <f:facet name="footer">
      <b:button value="Fermer" dismiss="modal" />
      <b:commandButton action="#{etudiantController.save()}" value="Enregistrer" look="primary" onclick="$('.modalDialog2').modal('hide');ajax:blockUIBean.waitFiveSeconds();"
      			dismiss="modal" styleClass="btn btn-danger" />
    </f:facet>
  </b:modal>
</h:form>
Voici ma méthode save() qui se charge de créer les étudiants selon le fichier choisit dans l'inputFile :
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
private Part file;
public void save() throws InvalidFormatException, EncryptedDocumentException, org.apache.poi.openxml4j.exceptions.InvalidFormatException, IOException {
 
	        File cFile = new File(file.getSubmittedFileName());
	        try {
	            cFile.createNewFile();
	        } catch (IOException e1) {
	            // TODO Auto-generated catch block
	            e1.printStackTrace();
	        }
	        try (InputStream input = file.getInputStream()) {
	            Files.copy(input, cFile.toPath(),StandardCopyOption.REPLACE_EXISTING);
	        }
	        catch (IOException e) {
	            e.printStackTrace();
	        }
 
	       /* for(Etudiant e: etudiants) {
	        	gestionEtudiant.deleteEtudiant(e);
	        }*/
	        gestionEtudiant.deleteAll();
	        etudiants.clear();
 
	        try {
	        	etudiants = ExcelReader.getEtudiants(cFile);
 
		        for(Etudiant e : etudiants) {
		        	gestionEtudiant.addEtudiant(e);
		        }
 
		        loadFile = true;
 
	        }catch(Exception e) {
	        	loadFile = false;
	        }
	}
Lorsque je lance l'appli en mode debug l'erreur provient de cette ligne-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
File cFile = new File(file.getSubmittedFileName());
Apparemment file serait null.
J'espère que vous pourrez m'éclairer sur ce problème car il est assez embêtant, merci d'avance

ps : les balises xHtml avec b sont des balises BootsFaces.
https://www.bootsfaces.net/