JSF/Tomahawk

Upload d'un fichier

Lorsque l'on utilise le composant <t:inputFileUpload>, il faut ajouter l'attribut enctype="multipart/form-data" au formulaire. Si cet attribut est absent, le message suivant est généré EvaluationException: Exception while invoking expression #{myBean.save}.

<h:form id="myForm" enctype="multipart/form-data">
  <t:inputFileUpload id="txtImage"
                     accept="image/*"
                     value="#{myBean.imageFile}"
                     storage="file"
                     styleClass="fileUploadInput"
                     required="true"
                     maxlength="200000"/>
  ...
  <h:commandButton id="btnValider" value="Valider" actionListener="#{myBean.save}"/>
</h:form>

Extensions Filter

Certains composants Tomahawk nécessite l'utilisation du filtre d'extensions de MyFaces. Ce filtre permet notamment à Tomahawk de télécharger des ressources associées aux composants (des images, des fichiers javascript...), ressources qui sont stockées dans le fichier jar de Tomahawk. Par exemple, le composant Picklist utilise le fichier picklist.js qui est téléchargé via une URI du type /myapp/faces/myFacesExtensionResource/xxx/picklist.js.

A noter que le mapping du filtre ne correspond pas forcément au mapping de votre servlet. Ainsi, si la servlet est mappée suivant le pattern *.jsf, le filtre doit tout de même intercepter /faces/myFacesExtensionResource/*.

<filter-mapping>
  <filter-name>extensionsFilter</filter-name>
  <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>