Spring et Richfaces/JSF, navigation
Bonjour,
Je rencontre un gros problème de navigation entre mes pages. Nous développons actuellement une webapp avec Spring Web Flow, Spring MVC, Richfaces et JSF.
voici la structure (seul les fichiers les plus importants sont listés)
/WEB-INF/flows/configuration/test/viewtest-flow.xml
/WEB-INF/flows/configuration/test/viewtest.xhtml
/WEB-INF/layout/template.xhtml
/WEB-INF/faces-navigation.xml
/pages/index.xhtml
la page index se base sur le template.xhtml qui contient un menu rich:panel de Richfaces.
Code:
1 2 3
| <rich:panelMenu>
<rich:panelMenuItem action="navr" label="test" />
</rich:panelMenu> |
Mon fichier faces-navigation.xml
Code:
1 2 3 4 5 6 7 8 9 10
|
<faces-config>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>navr</from-outcome>
<to-view-id>/flow/configuration/test/viewTest.xhtmll</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config> |
Notez que dans le to-view-id il y a écrit flow (sans le 's') car nous avons ceci dans le webflow-config.xml
Code:
1 2 3 4
|
<webflow:flow-registry id="flowRegistry" flow-builder-services="facesFlowBuilderServices" base-path="/WEB-INF/flows">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry> |
J'obtiens une erreur 404 à chaque fois
J'aimerais donc pouvoir aller sur ma page test depuis n'importe quelle page avec une regle de navigation.
Il y a peut également possibilité de configurer le viewtest-flow.xml pour faire ceci également.
Merci à tous de votre aide.
Note : actuellement pour palier le probleme j'ai fait la chose suivante :
Code:
1 2
| <rich:panelMenuItem label="test"
onclick="document.location.href='${request.contextPath}/flow/configuration/test';" /> |
avec dans le fichier test-flow.xml la ligne suivante
Code:
1 2 3
|
<view-state id="viewtest" view="viewtest.xhtml">
</view-state> |
Cet exemple marche mais pas tout le temps car je suis obligé de cliquer plusieurs fois parfois sur l'item pour que la navigation se fasse.
PS: nous utilisons tous ces frameworks sur demande du client.