Hi,

I have an application that works. Here is the simplified JSP code (from foo.jsp);

<x-tad-bigger> </x-tad-bigger><x-tad-bigger>h:commandLink </x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>h:outputText </x-tad-bigger><x-tad-bigger>/></x-tad-bigger><x-tad-bigger>
</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
</x-tad-bigger>

And here is the definition of 'mybean' in the config file

<x-tad-bigger> </x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
blah blah

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
</x-tad-bigger>

And the action method;

public String displayValue() {
return "outcome";
}

And finally the navigation stuff;

<x-tad-bigger> </x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>


</x-tad-bigger>
bar.jsp displays some details of the 'displayValue' (from the simplified JSP code above).

What you have to keep in mind is the bean behind 'bar.jsp' will be new if its created in request scope. So if displayValue has to look up some info and then stuff it into the bar's backing bean it must have a handle on the instance that is created for the current request. You can do that in your config with a bean reference. Here is the bean element for the barBean;

<x-tad-bigger> </x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
bar bar

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
</x-tad-bigger>

The managed-bean element for 'mybean' would then need to be updated to look like this;

<x-tad-bigger> </x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
blah blah

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>

</x-tad-bigger><x-tad-bigger>></x-tad-bigger><x-tad-bigger>
</x-tad-bigger>

Now com.example.MyBean needs to have a get/set method pair for gumpy (i.e. getGumpy and setGumpy). Then you modify the displayValue method to look like this;

public String displayValue() {
gumpy.setValueOne(...);
return "outcome";
}

Then in your bar.jsp you can refer to barBean.valueOne and it will have the value supplied by the invocation of mybean.displayValue().

The property is called gumpy in an attempt to not be confusing with naming the property after the managed bean (i.e. the value of managed-bean-name). In many cases you might want to name them the same (i.e. the property would be barBean instead of gumpy). If gumpy is more confusing, I'm sorry and please replace gumpy with barBean.

I hope this helps.

TTFN,

-bd-

On Apr 20, 2005, at 10:24 AM, AUGE Frédéric GC EUR wrote:

Hi,

I'm starting a new webapp with MyFaces 1.0.9 (this isn't my first one with
MyFaces) and decided to use Tiles.
My problem is with commandLink that won't fire any action when inside a
dataTable. The action method isn't called.
Is it a known problem ? anyone to say that it works ?

This simplified JSP code demonstrate the problem:

<x:dataTable id="ticketsList"
width="100%"
var="currentBean"
value="#{tckListBean.tickets}"
preserveDataModel="false">
<h:column>
<f:facet name="header">
<h:outputText value="#{appBundle.tckListTicket}" />
</f:facet>
<h:commandLink action="#{tckTicketBean.showTicketAction}">
<h:outputText value="ssss"/>
</h:commandLink>
</h:column>
</x:dataTable>

If I put the same commandLink just before the dataTable, it works perfectly
!

Thanks for any input,
Frederic

Reply via email to