J'ai eu un problème avec JSF, quand il s'agit de rediriger vers des pages à l'intérieur de mon application, cela fonctionne très bien, mais je n'ai pas pu rediriger vers une URL externe, quelqu'un peut-il me guider à ce sujet?
Soit juste mentionner l'URL directement dans <a>
Ou <h:outputLink>
.
<a href="http://stackoverflow.com">Go to this site!</a>
<!-- or -->
<h:outputLink value="http://stackoverflow.com">Go to this site!</h:outputLink>
Ou, si vous devez invoquer une action de bean en utilisant <h:commandLink>
Comme ci-dessous,
<h:form>
<h:commandLink value="Go to this site!" action="#{bean.redirect}" />
</h:form>
puis utilisez ExternalContext#redirect()
dans la méthode d'action.
public void redirect() throws IOException {
// ...
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
externalContext.redirect("http://stackoverflow.com");
}
Notez que vous n'avez pas besoin d'attraper ce IOException
, le serveur s'en occupera. Notez également l'importance d'inclure le schéma (http://
Ou https://
Ou //
) Dans l'URL, sinon il sera interprété par rapport au domaine actuel.