Page flow and facelet templates
chawax Oct 1, 2007 8:51 AMHi,
In a Seam application, I use JPDL to define pageflows. All pages of my application use facelet templates. All transitions defined in my pageflow work well, but I have a problem with links defined in my template, for example in a header : they throw a "Illegal navigation" error. What I understood from this message is that you can't go to a transition that is not modeled in JPDL. So I guess I should model it in my JPDL. But when you model your page flow with JPDL, you can't guess which links will exist in the template ! And just imagine you add a new link in the template, does it mean you have to change all your pageflows ? So is there a way to prevent Seam (or JBPM engine ; I don't know exactly if it's a Seam or JBPM problem) from checking navigation for some links ?
A piece of my JPDL pageflow definition :
<page name="confirmationDemandeur" view-id="/confirmationDemandeur.xhtml"> <redirect/> <transition name="suivant" to="choixMotif"></transition> <transition name="changerDemandeur" to="choixDemandeur"></transition> </page>
The corresponding JSF page :
<html xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j">
<ui:composition template="templates/template.xhtml">
<ui:define name="body">
<h:messages globalOnly="true" styleClass="message"/>
<rich:panel >
<f:facet name="header">Demande d'absence - Demandeur</f:facet>
<p>Choisissez le demandeur</p>
<h:form>
<div>
<h:outputText value="#{demandeAbsence.matriculeDemandeur}" />
-
<h:outputText value="#{demandeAbsence.infosDemandeur}" />
</div>
<div>
<h:commandButton id="cmdAutreDemandeur" value="Autre demandeur" action="changerDemandeur" />
<h:commandButton id="cmdContinuer" value="Continuer" action="suivant" />
</div>
</h:form>
</rich:panel>
</ui:define>
</ui:composition>
</html>The template.xhtml template :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="css/theme.css" rel="stylesheet" type="text/css" /> </head> <body> <ui:include src="menu.xhtml" /> <div class="body"> <ui:insert name="body"/> </div> </body> </html>
The menu.xhtml :
<rich:toolBar xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:rich="http://richfaces.ajax4jsf.org/rich"> <rich:toolBarGroup> <s:link view="/home" value="Accueil" /> </rich:toolBarGroup> </rich:toolBar>
The problem deals with the /home link.
I work with Seam 2.0.0.CR1 and JBPM 3.2.2
Any help appreciated ;)
Thanks in advance