Salut,
Je veux récuperer une image stocké dans ma base de données et l'afficher sur ma page JSP avec struts mais je ne sais pas comment faire. Quelqu'un aura t'il une petite idée.
Merci.
Version imprimable
Salut,
Je veux récuperer une image stocké dans ma base de données et l'afficher sur ma page JSP avec struts mais je ne sais pas comment faire. Quelqu'un aura t'il une petite idée.
Merci.
Il faudrai que tu consider cette image comme un fichier regarde ici ça te donnera peut etre une idée : http://java.developpez.com/faq/struts/?page=files
en fait dans ma table j'ai déclaré une colonne de type BLOB, ensuite dans mon bean de formulaire aussi j'ai déclaré un attribut de type blob et ensuite je poursui en utilisant ce type comme n'importe quel autre type (String par exemple) mais ça ne marche pas.
Avec des exemples de codes, ca sera plus simple je pense.
Effectivement, tu as raison.
** Voici le cose de recuperation dans ma page JSP :
** bean de formulaire :Code:
1
2
3 <logic:iterate id="Meteo" name = "METEO" property = "contenuMeteo"> <bean:write name="Meteo" property="etatProduction"/> </logic:iterate>
** le javabean correspondant :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class MeteoForm extends ActionForm{ private Blob etatProduction = null; private String commentaire = null; public Blob getEtatProduction() { return etatProduction; } public void setEtatProduction(Blob etatProduction) { this.etatProduction = etatProduction; } public String getCommentaire() { return commentaire; } public void setCommentaire(String commentaire) { this.commentaire = commentaire; } }
** Dans ma base j'ai une table meteo avec deux colonnes etatProduction de type Blob et commentaie de type varchar.Code:
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 public class Meteo implements Serializable{ private Blob etatProduction; private String commentaire = null; //private String nomMeteoSuppr = null; /** Creates a new instance of Meteo */ public Meteo() { } public Meteo(Blob etatProduction,String commentaire){ this.etatProduction = etatProduction; this.commentaire = commentaire; } //getters & setters public Blob getEtatProduction() { return etatProduction; } public void setEtatProduction(Blob etatProduction) { this.etatProduction = etatProduction; } public String getCommentaire() { return commentaire; } public void setCommentaire(String commentaire) { this.commentaire = commentaire; } public ActionForward insertion(ActionMapping mapping, Connection cnx) throws SQLException{ PreparedStatement pstmt; try{ pstmt=cnx.prepareStatement("insert into meteo (etatProduction, commentaire) values (?,?)"); pstmt.setBlob(1, etatProduction); pstmt.setString(2, commentaire); pstmt.executeUpdate(); cnx.commit(); return mapping.findForward("success"); }catch(Exception e){ cnx.rollback(); return mapping.findForward("erreur"); }finally{ cnx.close(); } } }
Voila et merci d'avance.
Je met la log des erreurs que me fait sortir Tomcat, je suis debutant en struts donc je n'arrive pas à voir c'est quoi exactement l'erreur :roll:
Citation:
java.lang.IllegalArgumentException: Cannot invoke fr.edit.eni.actionform.MeteoForm.setEtatProduction - argument type mismatch org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778) org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759) org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648) org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677) org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022) org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811) org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298) org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493) org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
Pour afficher des images a partir de blob il faut passer par une servlet qui renvoi un mime type cohérent (gif, jpg, ....)
Pour ce faire il lire le blob et ecrire le résultat dans l'output stream de la servlet