Comment afficher les images dans JSF + Primefaces 3.2
J'ai essayé d'obtenir des images rendues dans Primefaces-application.
Cela fonctionne bien en dehors de l'accordéon: panneau de
<h:graphicImage library="images" name="testi.JPG" />
Mais quand j'essaie de l'utiliser à l'intérieur du panneau accordéon, il ne fonctionne plus:
<p:accordionPanel>
<p:tab title="Godfather Part I">
<h:panelGrid columns="2" cellpadding="10">
<h:graphicImage library="images" value="testi.JPG" />
Il existe une balise pour les images en Primefaces, mais il n'y a pas de bibliothèque de balises à tous, donc j'ai essayé:
<p:tab title="Godfather Part II">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage url="/resources/images/testi.jpg" />
Si quelqu'un pourrait me dire comment faire et quelle est la bonne façon de le faire, car il ya beaucoup de choix différents mais rien ne fonctionne dans mon cas? Comment puis-je ajouter comme un universel dossier images à ma demande, où est-il pas de chemin du tout etc?
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><link type="text/css" rel="stylesheet" href="/temp/faces/javax.faces.resource/theme.css?ln=primefaces-flick" /><link type="text/css" rel="stylesheet" href="/temp/faces/javax.faces.resource/primefaces.css?ln=primefaces&v=3.2" /><link type="text/css" rel="stylesheet" href="/temp/faces/javax.faces.resource/layout/layout.css?ln=primefaces&v=3.2" /><script type="text/javascript" src="/temp/faces/javax.faces.resource/jquery/jquery.js?ln=primefaces&v=3.2"></script><script type="text/javascript" src="/temp/faces/javax.faces.resource/primefaces.js?ln=primefaces&v=3.2"></script><script type="text/javascript" src="/temp/faces/javax.faces.resource/layout/layout.js?ln=primefaces&v=3.2"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Primefaces Template</title></head><body>
L'affichage de la source donne:
C'est à l'extérieur du panneau accordéon et il est de travail:
<h:graphicImage library="images" name="testi.JPG" />
------------------->HTML:
<img src="/temp/faces/javax.faces.resource/testi.JPG?ln=images" />
Dans le panneau Accordéon à l'aide de la même ligne de code qui travaille à l'extérieur de panneau:
<p:tab title="Godfather Part I">
<h:panelGrid columns="2" cellpadding="10">
<h:graphicImage library="images" value="testi.JPG" />
<h:outputText value="The story begins as Don Vito Corleone,
------------------>HTML:
<td><img src="testi.JPG" /></td>
<td>The story begins as Don Vito Corleone,
À l'aide de Primefaces tag:
<p:tab title="Godfather Part II">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage url="/resources/images/testi.jpg" />
----------------->HTML:
<td><img id="j_idt29:j_idt32" src="/temp/resources/images/testi.jpg" alt="" /></td>
EDIT: CELA fonctionne, mais POURQUOI?
<h:graphicImage value="#{resource['images:testi.JPG']}"/>
ressource sans S!!
Merci!
Sami
J'ai ajouté un peu plus de code et d'en-tête et source de codes html. C'est exactement la même que la vitrine et mes images sont dans resources/images/.
OriginalL'auteur Sami | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Votre erreur, c'est que vous avez utilisé
value
attribut au lieu dename
attribut:Lorsque le référencement d'une ressource, vous doit utilisation
name
attribut de la place.La
value
attribut à savoir pointe vers une URL, et non pas à un nom de ressource.Sans rapport avec du béton de problème, vous n'êtes pas entièrement comprendre comment utiliser les
library
attribut correctement. Il n'est pas destinée à séparer les images, les fichiers CSS et JS les uns des autres. Là, vous avez déjà la seule tagname de la<h:graphicImage>
,<h:outputStylesheet>
et<h:outputScript>
balises pour. Lelibrary
attribut est censé être utilisé dans des applications web modulaires où les images/CSS/JS fichiers sont stockés dans un fichier JAR. Lelibrary
attribut permet de version et de les remplacer par les principaux webapp. Voir aussi Qu'est-ce que le JSF bibliothèque de ressources et comment doit-il être utilisé?Fixer votre
<h:graphicImage>
à supprimer que mallibrary
attribut d'utilisation:Ou d'introduire un fullworthy webapp spécifique à la bibliothèque où vous avez mis toutes les ressources:
Le dernier ne fonctionne pas ou je l'ai eu tort, mais tous les autres ont. Je veux dire ceci: <h:graphicImage bibliothèque="par défaut" name="images/testi.JPG" />
Le
#{resource}
convertit le nom de la ressource à une URL. Comme pour le dernier exemple, mettre laimages
dossier dans un autre dossier nommédefault
. Donc:/resources/default/images/testi.JPG
. Si vous avez une version plus récente, vous pouvez simplement créer par exemple/resources/default/1_1/images/testi.JPG
et JSF ressources gestionnaire remplira automatiquement.C'est très pratique, merci pour l'excellente leçon de nouveau 🙂
Vous êtes les bienvenus 🙂
OriginalL'auteur BalusC