Hello I'm trying to apply prettyFaces in my jsf2 (Primefaces) in order to rewrite my urls. My pages have a menu bar for navigation. This is the code menu.xhtml
<p:menubar id="unique">
<p:menuitem value="Accueil" url="/faces/../index.xhtml" icon="ui-icon-home"/>
<p:submenu label="Données" icon="ui-icon-folder-collapsed">
<p:menuitem value="Catégories" url="/faces/../categories/categories.xhtml" icon="ui-icon-document" />
<p:menuitem value="Articles" url="/faces/../articles/articles.xhtml" icon="ui-icon-plus" />
</p:submenu>
<p:menuitem value="Prestataires" url="/faces/../prestataires/prestataires.xhtml" icon="ui-icon-suitcase"/>
<p:menuitem value="Bon de Commande" url="/faces/../commandes/commandes.xhtml" icon="ui-icon-suitcase"/>
<p:submenu label="Personnel" icon="ui-icon-folder-collapsed">
<p:menuitem value="Services" url="/faces/../services/services.xhtml" icon="ui-icon-document" />
<p:menuitem value="Personnel" url="/faces/../personnels/personnels.xhtml" icon="ui-icon-plus" />
</p:submenu>
<p:submenu label="Sorties" icon="ui-icon-folder-collapsed">
<p:menuitem value="Ordre de sortie" url="/faces/../ordresorties/ordresorties.xhtml" icon="ui-icon-document" />
<p:menuitem value="Bon de sortie" url="/faces/../bonsorties/bonsorties.xhtml" icon="ui-icon-plus" />
</p:submenu>
<p:menuitem value="Utilisateurs" url="/faces/../utilisateurs/utilisateurs.xhtml" icon="ui-icon-person"/>
</p:menubar>
I want te rewrite those urls using prettyfaces. This is the content of my pretty-config
pretty-config.xml
<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config- prettyfaces" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite- config-prettyfaces.xsd">
<url-mapping id="cate">
<pattern value="/categories" />
<view-id value="/faces/../categories/categories.xhtml" />
</url-mapping>
<url-mapping id="arti">
<pattern value="/articles" />
<view-id value="/faces/../articles/articles.xhtml" />
</url-mapping>
<url-mapping id="presta">
<pattern value="/prestataires" />
<view-id value="/faces/../prestataires/prestataires.xhtml" />
</url-mapping>
<url-mapping id="bonCommandes">
<pattern value="/bonCommandes" />
<view-id value="/faces/../commandes/commandes.xhtml" />
</url-mapping>
<url-mapping id="serv">
<pattern value="/services" />
<view-id value="/faces/../services/services.xhtml" />
</url-mapping>
<url-mapping id="perso">
<pattern value="/personnesl" />
<view-id value="/faces/../personnels/personnels.xhtml" />
</url-mapping>
<url-mapping id="bonSorti">
<pattern value="/bonSortie" />
<view-id value="/faces/../bonsorties/bonsorties.xhtml" />
</url-mapping>
<url-mapping id="ordreSort">
<pattern value="/ordreSortie" />
<view-id value="/faces/../ordresorties/ordresorties.xhtml" />
</url-mapping>
<url-mapping id="utilis">
<pattern value="/utilisateurs" />
<view-id value="/faces/../utilisateurs/utilisateurs.xhtml" />
</url-mapping>
<url-mapping id="login">
<pattern value="/" />
<view-id value="/faces/../login.xhtml" />
</url-mapping>
<url-mapping id="accueil">
<pattern value="/accueil" />
<view-id value="/faces/../index.xhtml" />
</url-mapping>
</pretty-config>
When i run my application, only the accueil url works fine. When i'm trying to open ohter pages, I get this error in my navigator:
Etat HTTP 404 - /utilisateurs/login.xhtml Not Found in ExternalContext as a Resource
Here i'm trying to open the url /utilisateurs/utilisateurs.xhtml as mentionned in the menu.xhtml file. I don't understand why it instead opening /utilisateurs/login.whtml
Help please.
write your url as in the pattern values minus the "/". ie :
<p:menuitem value="Accueil" url="index" icon="ui-icon-home"/>
that works for me.