We're using <af:setActionListener> consistently, doing
things like:
<af:table var="item">
...
<af:column>
<af:commandLink ...>
<af:setActionListener from="#{item}"
to="#{EditItem.item}"/>
</af:commandLink>
</af:column>
</af:table>
All in all nice.
If I would need to start from scratch, I'd probably use a
facelets custom EL function like this:
<af:commandLink action="my:invoke('page', item)"/>
where my:invoke stores the parameter in some kind of hash
map for later retrieval. Or the backing bean base class has
an overridable invoke(Object obj) method, or similar.
Regards
Frank Felix
> -----Original Message-----
> From: Cosma Colanicchia [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, May 30, 2006 3:16 PM
> To: MyFaces Discussion
> Subject: f:param, updateActionListener, pageFlowScope,
> getCurrentRowData.. which design for CRUD with JSF?
>
> Hi,
>
> I've been experimenting JSF for my company for some weeks
by
> now. I'd like to discuss with you about the different ways
> the framework allows for passing parameters between views,
> which is a primary requirements for CRUD operations. I've
> tried many, each one with advantages and
> drawbacks:
>
> 1) Nesting an <f:param> inside the UICommand
> Problems: doesn't work with redirects, need to access an
> "ExternalContext" to retrieve the value
>
> 2) Nesting an <t:updateActionListener> (or a
> <af:setActionListener>) updating a backing bean property
> Problems: requires to create a property on a backing bean
> only for passing the parameter
>
> 3) Using the PageFlowScope of ADF Faces
> Problems: the target action has to be part of dialog (or
to start one)
>
> 4) Getting the current row from a custom DataModel (or
> CollectionModel for ADF Faces)
> Problems: it can be used only when the source of the
action
> is an UICommand inside a data table
>
> Am I missing something? What do you thing about those
> methods? Which one do you prefer? I know that each one is
> better for some situation, but I'd like to adopt a
consistent
> scheme across my application, to simplify maintenance and
to
> be able to recycle some view by defining a standard
interface.
>
> I'd like very much to hear your opinion.
>
> Cosma
>