martes, 26 de junio de 2007

pages.xml navegacion

Entre las razones de elegir el pages.xml para definir la navegación se encuentran:

  1. la posibilidad de especificar valores del request en la redirección
  2. comenzar o acabar una conversación desde la evaluación de una regla
  3. avaluar cualquier expressión de tipo EL

Para ver el empleo del pages.xml se puede ojear lo que produce el seam-jems generate-entities



Utilizar reglas de navegacion con pages.xml

lo que en faces-config.xml se escribiría así:

<navigation-rule>
<from-view-id>/editDocument.xhtml</from-view-id>
<navigation-case>
<from-action>#{documentEditor.update}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/viewDocument.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>


lo que en pages.xml quedaría así:

<pageview-id="/editDocument.xhtml">
<navigationfrom-action="#{documentEditor.update}"
evaluate="#{documentEditor.errors.size}">
<ruleif-outcome="0">
<redirectview-id="/viewDocument.xhtml"/>
</rule>
</navigation>
</page>


o incluso

<pageview-id="/editDocument.xhtml">
<navigationfrom-action="#{documentEditor.update}">
<ruleif="#{documentEditor.errors.empty}">
<redirectview-id="/viewDocument.xhtml"/>
</rule>
</navigation>
</page>

No hay comentarios: