Hi,
I have a situation where I need to extend some of the core JSF seam components, primarily s:link, because I need to create an image button which supports the s:link due to conversation traversing.
Before pageflows and conversation, I managed to do this through facelet components, but due to the way that seam evaluates the EL string given, it can't evaluate parameters being passed into a facelet, hence the need to create a proper JSF component for it.
Here is a sample facelet doing what I need to do:
... <ui:param name="actionButton" value="#{actionButton}"/> <ui:param name="disabled" value="#{disabled}"/> <s:link rendered="#{actionButton.seam}" action="#{actionButton.notifyOfSelection}" style="text-decoration: none;" disabled="#{actionButton.disabled or disabled}" > <medComp:graphicImage visible="#{not actionButton.hidden}" style="border: 0; padding: 2px;" actionButton="#{actionButton}" url="#{actionButton.getImagePath(disabled)}" fullImageURL="#{actionButton.getFullImagePath(disabled)}" title="#{messages[actionButton.imageDescription]}"/> </s:link> ...
And a sample usage:
<medComp:actionButton actionButton="#{mediationFlowSearch.performSearch}"/>
But when this is used, Seam complains that it can't evaluate 'actionButton', i.e. it is null, whereas when I use the same concept but using commandLink instead, it works without any problems.
I think this is something to do with phases.
Does anyone have any experience with extending the Seam JSF library, or any advice on how to approach this, i.e. do I need to extend s:link, or can this be acheived another way?
Thanks,
Osian