Récupérer le chemin racine de l'application Web dans JSF Managed Bean
Im essayant d'accéder à la exemple/web dossier (voir ci-dessous dans l'image) dans un managed bean jsf, mais ne peux pas l'air de trouver un moyen de le faire
thx
source d'informationauteur hari
Vous devez vous connecter pour publier un commentaire.
Si vous voulez obtenir comme un
File
pour une raison quelconque, alors vous avez besoinExternalContext#getRealPath()
. Cette fonction convertit une relative web chemin d'accès absolu du système de fichier du disque. Puisque vous avez besoin sur le web de la racine du dossier, il suffit de passer dans/
:Sans rapport avec à la de béton problème, quelle que soit l'exigence fonctionnelle vous avez eu à l'esprit pour lesquelles vous pensé que d'avoir une absolue disque local chemin du système de fichiers vers le dossier web est la bonne solution, il a très certainement être résolu différemment. Et en effet, comme pour votre commentaire sur l'autre réponse,
vous allez le mauvais chemin. Vous ne devez pas stocker les fichiers téléchargés là-bas, si vous avez l'intention de les garder plus longtemps que la webapp du déploiement de la durée de vie. Chaque fois que vous redéployer la webapp (et sur certains serveur configs, même lorsque vous redémarrez le serveur), le téléchargement de fichiers seraient complètement perdus, tout simplement parce qu'ils ne sont pas contenus dans le cadre de l'origine de la GUERRE de fichier. Plus encore, certains serveur lourd configs ne pas étendre la GUERRE sur le disque, mais dans la mémoire au lieu de cela, le
getRealPath()
serait alors toujours revenirnull
.Plutôt de les stocker dans un fixe disque chemin du système de fichiers sur le serveur du dossier de déploiement. Ajouter ce chemin à son tour comme un nouveau contexte de serveur ou de point d'entrée unique, de sorte qu'il est accessible sur un autre (virtuel) chemin de contexte. Ou homegrow une servlet, qui obtient une
InputStream
de partir du disque et de l'écrit àOutputStream
de la réponse. Voir aussi cette réponse: Image téléchargée uniquement disponible après l'actualisation de la pageEssayer
pour construire une url relative à des ressources dans votre application.
Si vous voulez le vrai chemin...
Essayer:
pour obtenir la vraie voie.
Créer un fichier tmp dans ressources/temp/pour éviter toute exception.
Voulais juste remercier Balus C. Code Java, JSP, Tomcat/Tomee serveur, j'ai le code suivant qui fonctionne: