Bonjour à tous,
Dans mon template j'ai un lien hypertext, n'y a-t-il pas moyen de créer le lien plus simplement que : <h:outputLink value="#{facesContext.externalContext.requestContextPath}/pages/modules/index.jsf"> ???
Version imprimable
Bonjour à tous,
Dans mon template j'ai un lien hypertext, n'y a-t-il pas moyen de créer le lien plus simplement que : <h:outputLink value="#{facesContext.externalContext.requestContextPath}/pages/modules/index.jsf"> ???
Dans ton cas, il faut utiliser plutôt :
et dans faces-config.xml, tu définis la règle de navigation pour monAction :Code:
1
2<h:commandLink action="monAction" .../>
Code:
1
2
3
4
5
6
7 <navigation-rule> <navigation-case> <from-outcome>monAction</from-outcome> <to-view-id>/pages/modules/index.xhtml</to-view-id> </navigation-case> </navigation-rule>
Aucun autre moyen de garder des liens simples plutôt que des liens avec javascript ?
Du Javascript ? Je ne comprends pas bien. Où y a t'il du Javascript là dedans ?
Sinon, ta solution fonctionne, le problème c'est qu'en effet, pour retrouver le chemin relatif est un peu compliqué...
Le javascript, c'est quand tu fais un "commandLink", il te génère du javascript.
Ton lien deviens : <a href="#" onclick="..."></a>
Ok, en effet. Est-ce vraiment un problème ?
Non pas trop c'est vrai.
Je voulais juste savoir si on savait faire des liens simples plus simplement qu'en utilisant :
Code:facesContext.externalContext.requestContextPath
A ma connaissance, non. Maintenant je suis loin de tout connaître de JSF ;)
Tu peux toujours raccourcir cette expression EL en appelant une méthode de l'un de tes beans qui retournera la valeur de facesContext.externalContext.requestContextPath...
Dans mon code, j'ai bien ça :
Code:
1
2 <link rel="stylesheet" href="#{facesContext.externalContext.request.contextPath}/css/monCss.css" />