Bonjour,
J'ai un formulaire qui premet d'uploader un document.
Une servlet récupère les informations du formulaire, crée un objet 'Document', créer un objet 'Converter' et lance la convertion du document au format html grâce à cet objet.
La lancement de la convertion se fait en ajoutant le 'Converter' à une instance statique de 'ConverterManager'.
Ma servlet implémente 'ConverterManagerListener' et est notifiée lorsque la convertion est démarrée, terminée ou annulée (erreur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Converter converter = new PdfToHtmlConverter(document.getChemin()); converter.addConverterListener(this); converterManager.register(converter); converterManager.startConverter(converter);
Lorsque la convertion est terminée (evènement 'converterFinished(Converter converter)' ) un DAO enregistre le document dans le SGBD (nom, chemin, categorie, etc..)
La convertion peut durer +/- longtemps en fonction de la taille du document..
Ma question :
Comment faire patienter proprement ET élégament l'utilisateur durant la convertion ?
Actuellement une fois que la servlet à lancé la convertion, elle retourne à la JSP avec le message "Le document '*****' à été correctement chargé."
Plus d'infos :
En fait l'utilisateur accéde toujours à la servlet 'http://intranet/documents/GestionDocuments".
La servlet redirige vers la JSP dans le doGet et analyse l'action à effectuer dans le doPost
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 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rs = request.getRequestDispatcher( "/documents/GestionDocuments.jsp" ); rs.forward(request, response); } .. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } .. protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int action = -1; if ( ServletFileUpload.isMultipartContent(request) ) { // Necessaire avec utilisation de org.apache.commons.fileupload try { items = upload.parseRequest(request); for (Iterator it = items.iterator(); it.hasNext();) { FileItem item = (FileItem) it.next(); if ( item.getFieldName().equals("action") ) { action = Integer.parseInt(item.getString()); } } } catch (FileUploadException e) { e.printStackTrace(); } } else { action = Integer.parseInt(request.getParameter("action")); } switch ( action ) { case AJOUTER_DOCUMENT_ACTION : ajoutDocument(request, response); break; default : doGet(request, response); } }
Merci
Partager