I've been dealing with a problem with JSF, when it comes to redirect to pages inside my app it works just fine, but I haven't been able to redirect to external URL can some one guide me on this?
Either just mention the URL directly in <a>
or <h:outputLink>
.
<a href="https://stackoverflow.com">Go to this site!</a> <!-- or --> <h:outputLink value="https://stackoverflow.com">Go to this site!</h:outputLink>
Or, if you need to to invoke a bean action using <h:commandLink>
like below,
<h:form> <h:commandLink value="Go to this site!" action="#{bean.redirect}" /> </h:form>
then use ExternalContext#redirect()
in action method.
public void redirect() throws IOException { // ... ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); externalContext.redirect("https://stackoverflow.com"); }
Note that you don't need to catch that IOException
, the server will deal with it. Also note the importance of including the scheme (https://
or http://
or //
) in the URL, otherwise it will be interpreted relative to the current domain.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With