16.05.2008

Seam Pageflow per Link starten

Das Starten von Pageflows in Seam ist immer wieder mit Verwirrung verbunden (http://www.google.de/search?q=pageflow+start+%22s%3alink%22).

Generell gibt es die Möglichkeiten:
  • Starten aus eine Action heraus: Dann muss der Pageflow mit einem start-state beginnen und die Action muss die gewünschte erste Transistion angeben
  • Starten direkt per Link aus dem View heraus: Dann muss der Pageflow mit einer start-page beginnen

Verwirrend ist in letzterem Fall, dass der Link sich auf der start-page selbst befinden muss, wenn er naheliegend formuliert ist:

<s:link pageflow="createCustomer" propagation="nest" value="Kunde anlegen">

Dieser Link resultiert in einer Fehlermeldung "Illegal Navigation". Der Trick besteht darin, die erste Seite des Pageflow mit anzugeben:

<s:link pageflow="createCustomer" propagation="nest" value="Kunde anlegen"view="/firstPage.xhtml" />

Schön ist das sicher nicht, aber es funktioniert.