Modifier /javax.des visages.ressources préfixe de l'Url de ressource
Lorsque j'utilise
<h:outputStylesheet library="css" name="styles.css">
ou
<h:graphicImage library="images" name="image.jpg">
puis en html je obtenir quelque chose comme cela
<link type="text/css" rel="stylesheet" href="/appName/javax.faces.resource/styles.css.xhtml?ln=css" />
de sorte que l'utilisateur peut voir de quel cadre a été utilisé pour écrire cette application. Comment puis-je éviter de montrer javax.faces.resource/styles.css.xhtml?ln=css
à l'utilisateur, mais aussi toujours à l'aide de facelets(pas en html, comme <link rel=...
>)? Il sera bon que lorsque l'utilisateur aura tout simplement voir le chemin d'accès au fichier css comme resources/css/styles.css
OriginalL'auteur maks | 2011-09-08
Vous devez vous connecter pour publier un commentaire.
Qui n'est pas directement possible sans de réimplanter l'ensemble de la
ResourceHandler
avec l'aide d'unResourceHandlerWrapper
comme répondu par lu4242 sur cette question, ce qui n'est pas une mince tâche. Il est codé en durpublic static final
champ constant dansResourceHandler
classe, leResourceHandler#RESOURCE_IDENTIFIER
. Vous pouvez poster une demande de fonctionnalité pour faire de cette externe configureable comme s'est passé pour laNamingContainer
caractère de séparation au cours de la JSF 1.2 de JSF 2.0 étape.Mais pourquoi voudriez-vous faire cela? Il y a beaucoup d'autres choses qui donne suffisamment d'indications sur le cadre. En cas de JSF qui peuvent être à la demande de modèle d'URL (
/faces/*
,*.jsf
ou*.xhtml
), les en-têtes de réponse (X-Powered-By
), caché des champs de formulaire (javax.faces.ViewState
), le générés automatiquement à l'Id client (par défaut woodstocked), les bibliothèques JS utilisé (jsf.js
), etc..Cette réponse n'est pas vrai!!!!! la constante est utilisé pour la valeur par défaut ResourceHandler, mais cela ne signifie pas que vous ne pouvez pas utiliser une valeur par défaut ResourceHandlerWrapper plus de celui par défaut, une écriture pleine mise en œuvre qui utilise d'autres préfixe différent de la structure. Je vais écrire une réponse pour celui-ci.
Ah d'accord, ça peut aussi, n'est-ce pas pensé à ça. Mais était-ce vraiment nécessaire de lancer avec ces points d'exclamation? Avez-vous vous sentez attaqué ou quelque chose? Désolé, ce n'était pas mon intention.
Non, non, ne vous méprenez pas 😉 C'est juste la spécification a été conçu pour justement permettre extensible ResourceHandler implémentations, comme le sens de la question.
OriginalL'auteur BalusC
C'est possible. Le code de la FacesServlet ressemble à ceci:
L'implémentation par défaut utilise ResourceHandler#RESOURCE_IDENTIFIER constante par défaut, mais il est techniquement possible d'écrire un ResourceHandlerWrapper qui utilise une autre structure. Le seul problème, c'est l'emballage doit tout mettre en œuvre, et vous ne pouvez pas déléguer à l'algorithme par défaut. Vous pouvez réutiliser le code sur MyFaces Partagé mais rappelez-vous ce sont les internes, afin de l'utiliser quelque chose comme maven ombre plugin ou d'une copie papier de déménager le nom du package.
Ce n'est pas possible de le modifier pour les ResourceHandler implémentations (par exemple, les composants qui utilisent une coutume ResourceHandler mise en œuvre, t:captcha ou d'autres variantes), parce que tous ceux qui sont liés à la constante.
De toute façon, j'ai créé MFCOMMONS-36 pour l'ajouter à la prolongation de la ResourceHandler de mise en œuvre qui est ajoutée sur MyFaces Communes.
OriginalL'auteur lu4242