Uploader un fichier

Bonjour,

Je dois réaliser un site Internet qui doit permettre à l’utilisateur, entre-autres, d’uploader un fichier. Je dois utiliser JSF (Java Server Face). J’utilise NetBeans avec Glassfish.

Connaissez-vous un composant permettant de faire ceci?

J’ai trouvé un composant nommé inputFileUpload dans MyFaces mais je n’arrive pas à le faire fonctionner avec NetBeans (prévu pour Tomcat?). La ligne “<%@ taglib uri=“http://myfaces.apache.org/tomahawk” prefix=“t”%>” est soulignée (extension non-reconnue) et la page ne s’affiche pas (erreur 5XX).

Merci d’avance
Edité le 17/05/2009 à 23:57

Moi je dirais que c’est du html classique (ex: www.cs.tut.fi… )

Derrière, c’est la gestion dans ton action/ta jsp qui va changer.

C’est vrai que cela pourrait être une solution mais il me semble qu’il existe des formulaire spécifique à JSF de ce type:

<h:form>
<h:dataTable value="#{userFactory.tests}" var="test">
	<h:column>
		<h:outputText value="#{test.id}" />
	</h:column>
	<h:column>
	
		<h:inputText value="#{test.nom}"/>
	</h:column>	
</h:dataTable>

Je ne sais pas si Dusty utilise ça ?

La solution la plus simple reste celle citée par Dusty :

  • Import dans le classpath de compilation et d’exécution de Tomahawk repo1.maven.org…
  • Dans le web.xml, initialiser la librairie. myfaces.apache.org…
  • Dans le managed bean, créer une propriété du type org.apache.myfaces.custom.fileupload.UploadedFile
public class MonBean {
    private UploadedFile mapropriete;
    // + setter
}

  • Dans la JSP, inclure :
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

Et son utilisation :

<t:inputFileUpload property="monbean.mapropriete" />

Edité le 11/05/2009 à 12:00

J’avais bien fait ce que tu as dit. Le problème est que j’essayais d’importer le jar dans NetBeans en sélectionnant le dossier le contenant. Pour que ça fonctionne, il faut sélectionner le jar (seul les *.class présentes dans le dossier sont prises en compte lors qu’on sélectionne un dossier).

Je te remercie pour tes explications.

Pour ceux qui veulent installer TomaHawk sous NetBeans, on peut leur indiquer qu’un *.taglib.xml doit également être placé et référencé depuis le web.xml. (tu ne l’indiques pas, je sais pas si c’est fait par maven automatiquement)

Importer la librairie
Sous netbeans, ce devrait etre comme dans les autres IDE. A savoir que pour constituer le classpath, tu sélectionnes soit des répertoires, soit des jar. Je cite (http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html) :

Taglib
Tu ne devrais pas avoir à le déclarer dans le web.xml, car il est normalement déjà spécifié par la librairie (ouvrir le jar, et voir dans le répertoire META-INF). Si c’est le cas, assure toi que la librairie soit présente dans ton projet web/WEB-INF/lib.