2017-05-16 7 views
0

J'utilise la balise h: graphicImage en HTML pour charger une image dans un répertoire différent de mon répertoire actuel.Utilisation d'un chemin relatif comme valeur dans une balise h: graphicImage

Par exemple, disons que mon répertoire de travail est:

/Users/nameOfUser/NetBeansProjects/MyProject/web 

et l'image se trouve dans le répertoire:

/Users/nameOfUser/Downloads/glassfish4/glassfish/domains/domain1/config/image.png 

La balise est situé dans myHtml.xhtml (ce fichier est dans le web dossier) et est comme suit:

<h:graphicImage value="../../../Downloads/glassfish4/glassfish/domains/domain1/config/image.png"/> 

Je sais que le chemin est correct en vérifiant sur la ligne de commande, mais je Je reçois une exception IllegalArgumentException. J'ai essayé de changer le chemin pour que ce ne soit pas un chemin relatif. Cela a résolu l'erreur mais j'ai besoin d'un chemin relatif afin de localiser correctement l'image.

Quelqu'un pourrait-il expliquer pourquoi cela pourrait se produire? Est-ce que cette balise n'accepte pas les chemins relatifs?

Merci d'avance!

EDIT: J'utilise la bibliothèque:

xmlns:h="http://xmlns.jcp.org/jsf/html" 

Répondre

1

Vous devez copier votre image dans le contexte de votre application, dans les ressources ou dans le répertoire disponible à partir de JSF. Par exemple, créer des images dossier à côté de votre page JSF et le charger avec:

<h:graphicImage value="/images/image.png"></h:graphicImage> 

example

Ou si vous avez vraiment besoin de charger/streamer à partir du disque, vérifiez cette question: Load images from outside of webapps/webcontext/deploy folder using <h:graphicImage> or <img> tag