jsf-2 navigation websphere websphere-portal jsr286

jsf 2 - Navegación entre páginas jsf dentro de un portlet en WebSphere Portal 8.0



jsf-2 navigation (1)

Estoy trabajando en WebSphere Portal 8.0 y estoy tratando de hacer portlet con pocas caras. ¿Alguien puede compartir conmigo cómo puedo hacer un enlace simple a otro sitio JSF dentro de un portlet? Quiero decir, estaba tratando de usar esto, pero no funciona:

<h:outputLink value="page2.xhtml"> <h:outputText value="take me to the page2" /> </h:outputLink>

Me redirigen al misterioso enlace, pero me gustaría permanecer en el mismo sitio pero cambiar de cara en este único portlet.


Tengo respuesta.

Si quieres usar GET, usa esto:

<h:link value="take me to the page2" outcome="page2" />

O por el uso de POST:

<h:form> <h:commandLink action="#{menager.navigateToPage2}" value="take me to the page2" /> </h:form>

y en faces-config.xml

<managed-bean> <managed-bean-name>menadzer</managed-bean-name> <managed-bean-class>test.Menadzer</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>symbolAktywnejSpolki</property-name> <value>#{param.symbol}</value> </managed-property> </managed-bean> <navigation-rule> <display-name>index.xhtml</display-name> <from-view-id>index.xhtml</from-view-id> <navigation-case> <from-action>#{menager.navigateToPage2}</from-action> <from-outcome>page2</from-outcome> <to-view-id>page2.xhtml</to-view-id> </navigation-case> </navigation-rule>

y la clase:

public class Menager { ... public String navigateToPage2() { return "page2"; } }

y si usa WebSphere Portal, agregue esto a faces-config.xml:

<application> <view-handler>com.ibm.faces20.portlet.FaceletPortletViewHandler</view-handler> <resource-handler>com.ibm.faces20.portlet.httpbridge.PortletResourceHandler</resource-handler> <el-resolver>com.ibm.faces20.portlet.PortletELResolver</el-resolver> </application>