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 : 
	
	serverError: class javax.faces.el.EvaluationException
 Voici mon xHtml :
	
	| 12
 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 :
	
	| 12
 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 
	
	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/
						
					
Partager