Hi all:
I have been struggling all day to understand the features provided by
Shale. Here's what i have so far:
I have a new skeletal project with just the jars in usecases.war in my
WEB-INF/lib and 2 trivial jsps. index.jsp which forwards to logon.faces.
logon.jsp is a usual logon page with un/pw stuff.
I have a LogonAction class (using org.apache.shale.usecases.profile
.LogonActions) which extends AbstractViewController. From the API docs for
ViewController:
"having your backing beans implement this interface (typically by
extending AbstractViewController) will receive the benefit of the extra
services described by this interface, all of which will be provided
automatically."
So I took that to mean that Shale has provided me with this nice
AbstractViewController so all I gotta do is exend it...? So, in my
LogonAction I implemented init(), prerender() and preprocess() methods
with trivial code. However, none of these methods are ever getting called.
(The LogonAction.logon method however *is* getting called...)
There's more stuff in the docs about:
To be useful, the ViewController must be plugged into the application
lifecycle through a custom JSF ViewHandler, like the ShaleViewHandler"
So am I supposed to plug the LogonAction to ShaleViewHandler? How do I do
that? (I didn't understand the docs here - and I can explain why but this
is already a very long message so will desist..)
Plus there's stuff about "registering" my ViewController bean. But I had
rather hoped that extending AbstractViewController would mean I wouldn't
have to do that explicitly..?
I have looked at the logon stuff in faces-confing.xml in usecases.war but
am afraid have drawn a blank..Kinda stuck at this point..(:(
Can someone please help me see what i am missing? Many thanks in advance!
Geeta
p.s. my faces-config.xml looks like this:
<managed-bean>
<managed-bean-name>profile$logon</managed-bean-name>
<managed-bean-class>
com.intellicare.shaleNShark.logon.LogonAction
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<description>
Session scope attribute key under which the User instance for a
logged on user is stored.
</description>
<display-name>User Key</display-name>
<property-name>userKey</property-name>
<property-class>java.lang.String</property-class>
<value>user</value>
</managed-property>
</managed-bean>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>authenticated</from-outcome>
<to-view-id>/success.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>unauthenticated</from-outcome>
<to-view-id>/failure.jsp</to-view-id>
</navigation-case>
</navigation-rule>