Entre las razones de elegir el pages.xml para definir la navegación se encuentran:
- la posibilidad de especificar valores del request en la redirección
- comenzar o acabar una conversación desde la evaluación de una regla
- 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:
Publicar un comentario