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