2011-02-23 121 views
29

He estado lidiando con un problema con JSF, cuando se trata de redirigir a páginas dentro de mi aplicación funciona bien, pero no he podido redireccionar a una URL externa. guíame sobre esto?Redirigir a una URL externa en JSF

+0

¿Qué sucede cuando intentas redirigir a una URL externa? ¿Cómo estás tratando de hacerlo? Muéstranos un código. –

+0

@Matt: Apuesto a que estaba jugando con los casos de navegación y los valores de los resultados. Eso de hecho no es posible entonces. Para las páginas internas, un '' o 'outcome? Faces-redirect = true' funciona bien. – BalusC

Respuesta

71

O bien solo menciona la URL directamente en <a> o <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> 

O, si necesita invocar una acción de frijol usando <h:commandLink> como a continuación,

<h:form> 
    <h:commandLink value="Go to this site!" action="#{bean.redirect}" /> 
</h:form> 

a continuación, utilizar ExternalContext#redirect() en el método de acción.

public void redirect() throws IOException { 
    // ... 

    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
    externalContext.redirect("http://stackoverflow.com"); 
} 

Tenga en cuenta que no es necesario coger ese IOException, el servidor se ocupa de él. También tenga en cuenta la importancia de incluir el esquema (http:// o https:// o //) en la URL, de lo contrario se interpretará en relación con el dominio actual.

+0

Gracias a que la solución ExternalContext funciona, es probable que no esté poniendo el prefijo "http" en mi URL, +1 para una respuesta rápida y cierta OTRA VEZ – Necronet