Inclure automatiquement afficher les paramètres dans l'URL
J'ai simple jsf page avec vue params et de la méthode de chargement qui est la transformation de ces params:
<f:metadata>
<f:viewParam name="param1" value="#{bean.param1}"/>
<f:viewParam name="param2" value="#{bean.param2}"/>
<f:viewParam name="param3" value="#{bean.param3}"/>
<f:event type="preRenderView" listener="#{bean.load()}"/>
</f:metadata>
J'ai également définir des valeurs initiales dans @PostConstruct
.
Comment faire pour rediriger l'utilisateur à l'endroit qui incluent ces paramètres (qui ne sont pas null).
Par exemple l'utilisateur d'entrer dans le navigateur:
domain.com/page.jsf
et est redirigé vers:
domain.com/page.jsf?param1=valueA
parce que param1 a été mis en @PostConstruct
.
Une autre question: j'ai des liens sur la page de référencement même point de vue:
<h:link value="clickme">
<f:param name="param3" value="otherValue"/>
</h:link>
Lorsque l'utilisateur entre dans la page avec ?param1=someValue
et clique sur lien, suis redirigé vers ?param3=otherValue
mais je veux rediriger vers ?param1=someValue¶m3=otherValue
.
Je sais que je peux ajouter plus de paramètres dans <h:link>
mais c'est diffucult pour ajouter chaque param dans tous les <h:link>
PS. J'utilise BalusC bout de cette rubrique JSF 2 et Post/Redirect/Obtenir?
Vous devez vous connecter pour publier un commentaire.
À la 1ère question: vous pouvez ajouter
includeViewParams=true
à la navigation en cas de résultats. Mais on ne peut jamais garantir que vous aurez réussi à être redirigé pendant que vous faites cela à l'intérieur d'unpreRenderView
méthode. Il sera peut-être déjà trop tard ensuite.À la 2ème question: vous pouvez définir la
includeViewParams
attribut de<h:link>
àtrue
.Alternativement, vous pouvez également ajouter
includeViewParams=true
pour le résultat.outcome += "&includeViewParams=true";
danshandleNavigation()
, mais je vais essayer d'utiliserincludeViewParams
àh:link
page.jsf
explicitement dans le navigateur, et non pas à l'aide de n'importe quel lien, est-il possible de rediriger dans ce cas?includeViewParams
à l'intérieur deh:link
aidé (je me demande pourquoi le faire danshandleNavigation()
doesnt work), 1ère question est encore ouverte