IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

probleme avec <h:form enctype="multipart/form-data">


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut probleme avec <h:form enctype="multipart/form-data">
    Bonjour

    je cré une nouvelle discution pour donner un autre Intitulé au meme probleme;

    j'essai d'appeler un object d'upload <af:inputFile>, le probleme est que si je met mon form de cette façon :
    <h:form enctype="multipart/form-data">

    mon controller ne fait rien et met tous mes donnée à null, par contre si je le met de cette façon : <h:form> ça passe mais il me trouve pas mon fichier uploadé ...

    avez-vous une idée ???

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    encore moi lol

    quel qu'un sait ou je peux telecharger l'api "oracle.ord.im", je voudrais utilisé la class oracle.ord.im.OrdMultipartWrapper pour resoudre mon probleme mais j'arrive pas à trouvé l'api, surement sur le site d'oracle mais ou ???

  3. #3
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Voici le code que j'ai et qui fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <af:form id="loadForm" usesUpload="true">
                    <af:inputFile id="myFileId" required="true"
                                  value="#{posListController.selection.file}" />
                    <af:commandButton id="loadButton" text="#{msg.LoadButton}"
                                     action="#{posListController.uploadFile}" />
                </af:form>
    Je ne sais si cela peut t'aider.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    As tu plusieurs <h:form> dans tes pages web (par exemple un pour le menu et un pour la page principale) ou un <h:form> qui englobe toute ta page ?

  5. #5
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    J'ai plusieurs 'form' dans ma page.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    non j'ai un seul <h:form>

    <h:form enctype="multipart/form-data">
    <af:inputFile id="file" value="#{myController.myUploadedFile}" />
    </h:form>

    y'a pas plus simple que ça !!!

    et j'ai deja utilisé un formulaire adf

    <af:form id="loadForm" usesUpload="true">

    mais c'est pareil !!!

    j'ai trouvé sur le site d'oracle que les entrées multipart/form-data peuvent etre traité avec OrdMultipartWrapper mais j'arrive pas à trouvé l'api à telechargé ...

    pour vny tu peux me donné ton code controller please pour que je verifi s'il me manque pas autre chose ???

    merci

  7. #7
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    #{posListController.selection.file} est du type oracle.adf.view.faces.model.UploadedFile dans ListSelection

    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
     
    public void uploadFile() throws Exception {
            ListSelection selection = getSelection();
     
            if (selection.getFile() != null) {
                BufferedReader in = null;
                try {
                    InputStreamReader isr = new InputStreamReader(selection.getFile().getInputStream());
                    in = new BufferedReader(isr);
     
                    List<String> lines = new ArrayList<String>();
                    String line = in.readLine();
                    while (line != null) {
                        lines.add(line);
                        line = in.readLine();
                    }
     
                    //copie des lignes du fichier dnas une collection de selectItem
                    for (String posIdentifier : lines) {
                        selection.getItems().add(new SelectItem(posIdentifier));//items est une COllection de SelectItem
                        } 
     
                } finally {
                    try {
                        in.close();
                    } catch (Exception e) {
                    }
                }
            }
        }
    As-tu vérifié la config ADF dans web.xml, ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    peux-tu mettre tous le code de ton controller "posListController" ???

    ça m'aide pas trop ce que tu ma donnée ...

    pour la config ADF dans web.xml, y'a rien n'a ajouté de plus que ce qu'il y'a sur le site d'oracle :
    http://www.oracle.com/technology/pro...ileUpload.html

    ???

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    parce que tous simplement dés que je met le formulaire de cette façon :

    <af:form id="loadForm" usesUpload="true">
    ou
    <h:form enctype="multipart/form-data">

    aucune methode n'est appelé !!!!!

  10. #10
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Je viens de refaire une petite page exemple, car pas facile de tout te donner : c'est "compliqué".

    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
     
        <div class="loadFile">
                <af:form id="loadForm" usesUpload="true">
                    <af:inputFile id="myFileId"
                                  value="#{test.file}" />
                    <af:commandButton id="loadButton" text="Load"
                                     action="#{test.uploadFile}" />
                </af:form>
            </div>
    <div class="bigDestListPanel">
            <af:form>
                <h:selectOneListbox size="25">
                    <f:selectItems value="#{test.pointOfServiceItems}"/>
                </h:selectOneListbox>
            </af:form>
    </div>
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    package xxx.test.vny;
     
    import oracle.adf.view.faces.model.UploadedFile;
    import xxx.util.SelectItemLabelComparator;
     
    import javax.faces.model.SelectItem;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.*;
     
    /**
     * <code>TestBean</code> is
     *
     */
    public class TestBean {
     
        private UploadedFile file;
        private Collection<SelectItem> pointOfServiceItems = new TreeSet<SelectItem>(new SelectItemLabelComparator());
     
     
     
        public UploadedFile getFile() {
            return file;
        }
     
        public void setFile(UploadedFile file) {
            this.file = file;
        }
     
     
        public Collection<SelectItem> getPointOfServiceItems() {
            return pointOfServiceItems;
        }
     
        public void uploadFile() throws Exception {
     
            if (getFile() != null) {
                BufferedReader in = null;
                try {
                    InputStreamReader isr = new InputStreamReader(getFile().getInputStream());
                    in = new BufferedReader(isr);
     
                    List<String> lines = new ArrayList<String>();
                    String line = in.readLine();
                    while (line != null) {
                        lines.add(line);
                        line = in.readLine();
                    }
     
                    getPointOfServiceItems().clear();
                    for (String posIdentifier : lines) {
                            getPointOfServiceItems().add(new SelectItem(posIdentifier));
                    }
                } finally {
                    try {
                        in.close();
                    } catch (Exception e) {
                    }
                }
            }
        }
     
     
    }
    J'ai testé et cela va très bien dans mon projet

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    merci
    suivant ton code y'a rien de spécial ...
    autre demande; peux-tu me donné les deux fichiers web.xml et faces-config.xml si ce n'est pas trop demandé

    ça doit etre un probleme de config ou je sais pas, moi j'arrive meme pas à appelé mes methodes dés que je passe mon formulaire en "usesUpload"

    c'est fou ...

    merci encore

  12. #12
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut faces-config
    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
     
    <application>
     
            <default-render-kit-id>oracle.adf.core</default-render-kit-id>
            <message-bundle>bundle.messages</message-bundle>
            <message-bundle>bundle.errors</message-bundle>
     
            <view-handler>oracle.adfinternal.view.faces.application.ViewHandlerImpl</view-handler>
     
    		<!--variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver-->
            <locale-config>
              <default-locale>en</default-locale>
              <supported-locale>en</supported-locale>
              <supported-locale>fr</supported-locale>
            </locale-config>
        </application>
    Je dois "nettoyer" mon web.xml et je te l'envoye

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    okii merci

    sinon pour le faces-config.xml , rien de spécial non plus tout est ok chez moi

  14. #14
    vny
    vny est déconnecté
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 48
    Points
    48
    Par défaut web.xml
    Voici el fichier web.xml
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE web-app PUBLIC
      "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
     
        <!--see http://wiki.apache.org/myfaces/A_Little_Quality_Assurance-->
        <context-param>
           <param-name>org.apache.myfaces.validate</param-name>
           <param-value>false</param-value>
        </context-param>
     
        <context-param>
            <param-name>javax.faces.CONFIG_FILES</param-name>
            <param-value>
                /WEB-INF/jsf-config-app.xml,
                /WEB-INF/jsf-config-bean.xml,
                /WEB-INF/jsf-config-nav.xml,
                /WEB-INF/jsf-config-j4j.xml
            </param-value>
        </context-param>
     
        <!-- Indicates where the Spring application context resides -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/applicationContext.xml
            </param-value>
        </context-param>
     
        <!-- files that will be searched for when requesting a .jsf one (instead of .jsp) -->
        <context-param>
            <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
            <param-value>.xhtml</param-value>
        </context-param>
     
        <!-- needed to allow Facelets to integrate Tomahawk and j4j components as well -->
        <context-param>
            <param-name>facelets.LIBRARIES</param-name>
            <param-value>
                /WEB-INF/tomahawk.taglib.xml;
                /WEB-INF/j4j.taglib.xml;
                /WEB-INF/sandbox.taglib.xml;
            </param-value>
        </context-param>
     
       <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
            <description>State saving method: "client" or "server" (= default)</description>
       </context-param>
     
        <!-- ADF Faces view handler declared in jsf-config -->
        <context-param>
            <param-name>oracle.adf.view.faces.ALTERNATE_VIEW_HANDLER</param-name>
            <param-value>com.sun.facelets.FaceletViewHandler</param-value>
        </context-param>
     
        <context-param>
          <param-name>oracle.adf.view.faces.USE_APPLICATION_VIEW_CACHE</param-name>
          <param-value>false</param-value>
        </context-param>
     
        <context-param>
          <param-name>oracle.adf.view.faces.ENABLE_DMS_METRICS</param-name>
          <param-value>false</param-value>
        </context-param>
     
        <context-param>
          <param-name>oracle.adf.view.faces.CHECK_FILE_MODIFICATION</param-name>
          <param-value>true</param-value>
        </context-param>
     
        <context-param>
          <param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
          <param-value>session</param-value>
        </context-param>
     
        <context-param>
          <param-name>oracle.adf.view.faces.DEBUG_JAVASCRIPT</param-name>
          <param-value>false</param-value>
        </context-param>
     
        <context-param>
            <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
            <param-value>true</param-value>
        </context-param>
     
        <context-param>
            <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
            <param-value>false</param-value>
        </context-param>
     
        <context-param>
            <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
            <param-value>false</param-value>
        </context-param>
     
        <context-param>
            <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
            <param-value>false</param-value>
        </context-param>
          <context-param>
        <!-- Maximum memory per request (in bytes) -->
        <param-name>oracle.adf.view.faces.UPLOAD_MAX_MEMORY</param-name>
        <!-- Use 500K -->
        <param-value>512000</param-value>
      </context-param>
      <context-param>
        <!-- Maximum disk space per request (in bytes) -->
        <param-name>oracle.adf.view.faces.UPLOAD_MAX_DISK_SPACE</param-name>
        <!-- Use 10,000K -->
        <param-value>10240000</param-value>
      </context-param>
     
      <context-param>
        <param-name>
           oracle.adfinternal.view.faces.DISABLE_CONTENT_COMPRESSION
        </param-name>
        <param-value>true</param-value>
    </context-param>
     
     
        <filter>
           <filter-name>adfFaces</filter-name>
           <filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
        </filter>
     
        <filter>
            <filter-name>extensionsFilter</filter-name>
            <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
            <init-param>
                <param-name>uploadMaxFileSize</param-name>
                <param-value>100m</param-value>
            </init-param>
            <init-param>
                <param-name>uploadThresholdSize</param-name>
                <param-value>100k</param-value>
            </init-param>
            <init-param>
                <param-name>uploadRepositoryPath</param-name>
                <param-value>C:/temp</param-value>
            </init-param>
        </filter>
     
     
        <filter-mapping>
            <filter-name>adfFaces</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
        </filter-mapping>
     
        <filter-mapping>
            <filter-name>extensionsFilter</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
        </filter-mapping>
        <filter-mapping>
            <filter-name>extensionsFilter</filter-name>
            <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
        </filter-mapping>
     
        <!-- Faces Servlet -->
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <!-- necessary for ADF Faces -->
        <servlet>
            <servlet-name>ADF resources</servlet-name>
            <servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
        </servlet>
     
        <!-- Faces Servlet Mapping -->
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.jsf</url-pattern>
        </servlet-mapping>
     
        <servlet-mapping>
            <servlet-name>ADF resources</servlet-name>
            <url-pattern>/adf/*</url-pattern>
        </servlet-mapping>
     
        <!-- Welcome files -->
        <welcome-file-list>
            <welcome-file>faces/public/welcome.jsf</welcome-file>
        </welcome-file-list>
     
        <error-page>
            <error-code>500</error-code>
            <location>/error.jsp</location>
        </error-page>
     
    </web-app>

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    merci vny pour les fichiers, mais le probleme que j'avais c'est que mes données en entrés n'été pas reconnu du coup je passe par une class oracle OrdHttpUploadFormData pour recuperer mais donnée et je parse pour savoir si c'est un fichier ou autre et ça marche.

    il me reste juste à enregistrer le fichier que je recupere avec OrdHttpUploadFile dans un java.sql.Blob et ça aussi oufff ça marche pas lol ...

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Points : 66
    Points
    66
    Par défaut
    c'est bon ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec enctype="multipart/form-data"
    Par MeDioN dans le forum Langage
    Réponses: 4
    Dernier message: 07/07/2009, 17h09
  2. Réponses: 1
    Dernier message: 17/07/2007, 14h38
  3. Réponses: 1
    Dernier message: 25/06/2007, 21h10
  4. Probleme avec plus de 50 composants dans une form
    Par dalton5 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 18/02/2007, 19h23
  5. select multiple avec enctype="multipart/form-data
    Par Tail dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/01/2007, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo